node express路由模块化Router

分割路由,在一个中间件中引入路由模块,达到模块化的目的

1、引入
	var express = require('express');
	var router = express.Router();

2、router就相当于一个app,使用方法和app一样
	router.get('路径',回调函数);
	...
	
3、引入模块
		在app.js中引入路由模块
		app.use('路径',router);
		会把所有router创建的路由都分别放在app.use中的路径下

代码示例:
路由文件:

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

/* GET home page. */
//实例化路由模块,相当于一个app
router.get('/',(req,res)=>{
     
	res.send('商城首页')
})
router.get('/list',(req,res)=>{
     
	res.send('商城列表页')
})

module.exports = router;

app.js文件:

var express = require('express')
var mysql=require('mysql')
//引入路由模块
var router=require('./routes/index.js')
var app=new express()

//中间件,访问所有页面都会解惑,不会执行后面的路由,调用next()才会往下走
//一般使用为了给req/res对象添加属性或方法
app.use(function(req,res,next){
     
	console.log('访问任何页面都会被调用');
	res.addNum=function(a,b){
     
		return a+b;
	}
	next();
})

app.get('/',function(req,res){
     
	res.send('1'+res.addNum(7,8));
})

app.listen(3000,function(){
     
	console.log('this express server is running at http://127.0.0.1:3000 ')
})

app.get('/books',(req,res)=>{
     
	res.end('1');
})


//将router的两个路由放进/mall路径下,即/mall和/mall/list可访问两个router路由
app.use('/mall',router);

module.exports = app;

你可能感兴趣的:(node进阶,nodejs)