express中router模块化生产/路劲传值

责编:menVScode 2017-09-17 17:46 阅读(522)

server.js

定义路劲的时候,竟然不要用use,use定义路劲只应用于中间件模块;app.use('/book',router) //router.js中模块的根目录,其实是这里定义的路劲就是模块的根路径。相当于访问 '/book' 的时候,就会去router.js中去匹配 '/' ;访问 '/book/menvscode' 的时候,就会去router.js中去匹配 /menvscode'。 

var express = require('express');
var app = express();

var server = app.listen(3000,function() {
	console.log('waiting...');//运行node server.js,会在终端输出waiting
});

var router = require('./router');

//定义路劲的时候,竟然不要用use; use定义路劲只应用于中间件模块
app.use('/book',router);//模块的根目录,其实是这里定义的路劲就是模块的根路径

app.use(function(req,res){
	res.status(404).send('404');
});

router.js

var express = require('express');
var router = express.Router();

router.use(function timeLog(req,res,next){
	console.log('Time:',Date.now());
	next();
});

router.get('/',function(req,res){
	res.send('home');
});

router.get('/menvscode',function(req,res){
	res.send('menvscode');
});

module.exports = router;

链式写法

var express = require('express');
var router = express.Router();

router.use(function timeLog(req,res,next){
	console.log('Time:',Date.now());
	next();
});
router.get('/',function(req,res){
	res.send('home');
});

//链式
router.route('/about')
	.get(function(req,res){
		res.send('book about');
	})
	.post(function(req,res){
		res.send('add book');
	})
	.put(function(){
		res.send('update book');
	});
module.exports = router;

路劲传值

var express = require('express');
var router = express.Router();

router.param('id',function(req,res,next,id){
	console.log('对id进行相关处理,要放在get方法之前,同时也增加了第四个参数');
});

router.get('/search/:id/:page',function(req,res,next){
	res.send('This book ID = '+req.params.id+'and page = '+req.params.page);
});

module.exports = router;
前端交流群: MVC前端网(menvscode.com)-qq交流群:551903636

邮箱快速注册

忘记密码