废话不废 2018-05-11
先最简单的代码
安装 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 实现的代码