分割路由,在一个中间件中引入路由模块,达到模块化的目的
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;