Router([options])letrouter=express.Router([options]);options对象caseSensitive,区分大小写,默认不区分mergeParams,保留父router需要的参数值,如果parent和child有参数冲突names,那么这个子项的值会优先strict,激活严格路由,默认禁用。禁用后,/uu可以正常访问,但是/uu/无法访问。1.router.all调用router.all(path,[callback,...]callback)router.all('*',fn1,fn2...);//或router.all('*',fn1);router.all('*',fn2);//或router.all('/user',fn3);2.router.METHODrouter.METHOD(path,[callback,...]callback)其实就是ajax的各种请求方法router.get('/',(req,res,next)=>{})router.post('/',(req,res,next)=>{})3.路由器。路由(路径)varrouter=express。路由器();路由器。param('user_id',function(req,res,next,id){//示例用户,实际上会从数据库中获取,等等...req.user={id:id,name:'TJ'};next();});router.route('/users/:user_id').all(function(req,res,next){//首先为所有HTTP动词运行//将其视为特定于路由的中间件!next();}).get(function(req,res,next){res.json(req.user);}).put(function(req,res,next){//只是一个可能更新用户的例子req.user.name=req.params.name;//保存用户...等res.json(req.user);}).post(function(req,res,next){next(newError('notimplemented'));}).delete(function(req,res,next){next(newError('notimplemented'));})4.router.use4.1使用路由varexpress=require('express');varapp=express();varrouter=express.Router();//此路由器请求的简单记录器//对此路由器的所有请求将首先点击这个中间件路由器。使用(函数(req,res,next){console.log('%s%s%s',req.method,req.url,req.path);next();});//只有当路径以/bar从挂载点开始时才会被调用;});//总是调用drouter.use(function(req,res,next){res.send('HelloWorld');});app.use('/foo',router);app.listen(3000);4.2使用模块方法varlogger=require('morgan');router.use(logger());router.use(express.static(__dirname+'/public'));router.use(function(req,res){res.send('Hello');});
