写个express Router的小demo
2017-04-08 本文已影响318人
元气满满321
用express Router就可以更简单地管理我们的app routes.跟着我一起做个小demo
demo目录结构
文件目录.png开始做demo
1.在animals.js定义一些routes
var express = require('express');
var router = express.Router();
// Domestic animals
router.get('/domestic', function(req, res) {
res.send('Cow, Horse, Sheep')
});
// Wild animals
router.get('/wild', function(req, res) {
res.send('Wolf, Fox, Eagle')
});
module.exports = router;
定义了domestic
和wild
routes,并且把router导出
2.在 Express app里把 animal定义的routes全部加载
var express = require('express');
var app = express();
app.use('/animals', require('./animals'));
app.listen(3000,()=>{
console.log("Listen to the 3000");
});
我们的app(相当于服务器)将会响应 /animal/dometic
或/animals/wild
发送过来的get请求,并返回响应内容
3.和animal.js类似,再定义cars.js
var express = require('express');
var router = express.Router();
router.get('/brands', (req, res)=> {
res.send("Audi");
});
router.get('/models', (req, res)=> {
res.send("Q7");
});
module.exports = router;
定义了brands
和models
routes,并且把router导出
4.接下来写一个index.js可以加载上述animal.js 、car.js里面定义的routes
var express = require('express');
var router = express.Router();
router.use('/cars', require('./cars'));
router.use('/animals', require('./animals'));
router.get('/',(req,res)=>{
res.send("this is homePage");
});
module.exports = router;
5.改写app.js
因为index.js可以加载上述animal.js 、car.js里面定义的routes,所以只需把index.js导入进来,或直接把index.js所在的文件夹controllers导入
var express = require('express');
var app = express();
app.use(require('./controllers'));
app.listen(3000,()=>{
console.log("Listen to the 3000");
});
到这里,我们的app 将会响应如下路径发来的请求,并返回响应的内容
- /
- /about
- /animals/domestic
- /animals/wild
- /cars/brands
- /cars/models
现在注意到express Router管理我们的routes简单吧,比如你只需设定一个公共的开始路径/animals
,然后在上面挂载分支/dometic
、/wild
,这样使內部的路由撰寫更方便、更有彈性
每天都努力一点点
谢谢你看完