首先看例子:
var express = require('express');
var router = express.Router(); var index = require('./router/index'); //①
app.use('/test1',function(req,res,next){
res.send('this is test1');
}); //②
app.get('/test2',function(req,res,next){
res.send('this is test2');
}); //③
app.use('/test3',index); //④
app.get('/test4',index);
index是一个路由对象,前三个结果都可以正确显示,最后一个会报错404。这说明给app.get设置路由对象是不能实现的(app.post同理)。
那么两者各自在什么情况下使用呢:
路由规则是app.use(path,router)
定义的,router
代表一个由express.Router()
创建的对象,在路由对象中可定义多个路由规则。可是如果我们的路由只有一条规则时,可直接接一个回调作为简写,也可直接使用app.get
或app.post
方法。
(参考梧桐和风博客)