先最简单的代码

安装 npm install express

app.js 代码内容

const express = require('express')
const app = express()
//单项流动
const mid1 = () => (req, res, next) => {
res.body = '请求1<br/>'
next()
}
const mid2 = () => (req, res, next) => {
res.body += '请求2<br/>'
next()
} app.use(mid1())
app.use(mid2()) app.get('/', (req,res,next) => {
res.send(res.body +'业务处理中')
}) app.listen()

打开 localhost:2334端口可以看到

在上一个丰富点的代码,包含 swig模版引擎,静态资源加载,mongoose使用

var express = require('express');           //引入express
var swig = require('swig'); //引入swig模版引擎 同类的还有ejs bug
var mongoose = require('mongoose'); // 引入数据库 mongoose 需预先安装数据库
//加载 bodeyparser
var bodyParser = require('body-parser'); // 引入 body-parser 中间键
var Cookies = require('cookies'); // 引入cookies var app =express(); // 实例化 express var User = require('./models/User'); //设置静态文件托管
app.use('/public',express.static(__dirname + '/public')); // app.use 加载中间键 //加载模板模块
app.engine('html',swig.renderFile)
//设置模板目录第一个参数固定
app.set('views','./views');
// 注册所有使用模板引擎 第一个参数必须是view engine
app.set('view engine','html'); swig.setDefaults({cache: false}); // 默认缓存静态页面 false方便调试 app.use(bodyParser.urlencoded({extended: true})); app.use(function(req,res,next){
req.cookies = new Cookies(req,res);
//解析登录用户的cookie信息
req.userInfo ={};
if(req.cookies.get('userInfo')){
try{
req.userInfo = JSON.parse(req.cookies.get('userInfo'));
//获取当前登录用户类型 操作数据方法
User.findById(req.userInfo._id).then(function(userInfo){
req.userInfo.isAdmin = Boolean(userInfo.isAdmin);
next(); //next() 指引前往下一步
})
}catch(e){
next();
} }else{
next();
} });
//划分路由到不同的文件夹
app.use('/admin',require('./routers/admin'));
app.use('/api',require('./routers/api'));
app.use('/',require('./routers/main'));
// MONGOOSE 链接数据库
mongoose.connect('mongodb://localhost:27017/test',function(err){
if(err){
console.log("数据库链接失败");
}else{
console.log("数据库链接成功");
app.listen();
}
});

我在上面代码中做了详细的注写,还会详细完善

github地址:https://github.com/xiaoyanbin/bolg

一个完整的node.js +mongoose + express 实现的代码 

node.js,express入门看详细篇的更多相关文章

  1. Node.js快速入门

    Node.js是什么? Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web应用程序框架. 它的最新版本是:v0.12.7(在编写本教程时的版本).Node.js在官方 ...

  2. Node.js最新技术栈之Promise篇

    前言 大家好,我是桑世龙,github和cnodejs上的i5ting,目前在天津创业,公司目前使用技术主要是nodejs,算所谓的MEAN(mongodb + express + angular + ...

  3. Node.js Express 框架学习

    转载:http://JavaScript.ruanyifeng.com/nodejs/express.html#toc0 感觉很牛的样子,不过觉得对初学者没太大用,里面很多例子用的api都没有详细的说 ...

  4. Windows下Node.js+Express+WebSocket 安装配置

    Linux参考: Linux安装Node.js 使用Express搭建Web服务器 Node.js是一个Javascript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V ...

  5. Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识

    目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...

  6. Nodejs学习笔记(六)—Node.js + Express 构建网站预备知识

    前言 前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识! 主要是些基础的东西... 如何去创建路由规则.如何去提交表单并接收表单项的值.如何去给密 ...

  7. Node.js开发入门—HelloWorld再分析

    在Node.js开发入门(1)我们用http模块实现了一个简单的HelloWorld站点,这次我们再来细致分析下代码.了解很多其它的细节. 先看看http版本号的HelloWorld代码: 代码就是这 ...

  8. modeJS 深了解(1): Node.js + Express 构建网站预备知识

    转载:http://www.cnblogs.com/zhongweiv/p/nodejs_express_webapp1.html 目录 前言 新建express项目并自定义路由规则 如何提取页面中的 ...

  9. React入门看这篇就够了

    摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所有. React 背景介绍 React 入门实例教程 React 起源于 ...

随机推荐

  1. Android进阶(十二)Fragment VS Activity

    Fragment  VS  Activity Android是在Android 3.0 (API level 11)开始引入Fragment的. 可以把Fragment想成Activity中的模块,这 ...

  2. 【一天一道LeetCode】#59. Spiral Matrix II

    一天一道LeetCode系列 (一)题目 Given an integer n, generate a square matrix filled with elements from 1 to n2 ...

  3. Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示

    Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示 今天项目中要实现一个天气的预览,加载的信息很多,字段也很多,所以理清了一下思路,准备独立出来写一个总结,这样对大家 ...

  4. Android数据库Realm实践

    Android开发中常用的数据库有5个: 1. OrmLite OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM.支持JDBC连接,Spring以及Android平台. ...

  5. (十)弹出框Alert与ActionSheet

    第一种方式:中间弹窗 从中间弹出的窗口称为AlertView. 可以设置多个按钮,取消按钮会放在对右端或者最下端,按钮超过两个,会竖着排列. UIAlertView *alert = [[[UIAle ...

  6. shell重定向(大于号,小于号,左右,2>&1,&)

    本文的例子部分是引用网络上的一篇文章. Linux的IO输入输出有三类 Standard Input 代码 0 Standard Output 代码 1 Standard Error 代码 2 举个例 ...

  7. table中 点击某一行变色

    效果图: <html> <head> <meta http-equiv="Content-Type" content="text/html; ...

  8. NumberProgressBar开源项目学习

    1.概述 多看多学涨姿势, github真是个宝库 这个项目主要是实现数字进度条效果 github地址在https://github.com/daimajia/NumberProgressBar 感谢 ...

  9. Java开发机器上的配置及zookeeper配置

    Java开发机器上的配置及zookeeper配置 /etc/profile 文件的后面加入下面的内容: # jdk, zookeeper, kafka, ant, maven export APACH ...

  10. 【freeradius】使用radclient调试radius协议

    freeradius 自带了非常好的客户端程序 radtest, radclient 用来模拟和调试设备和通信过程.radtest多用于认证,radclient更为强大一些,认证,计费,coa都可以模 ...