很简单的问题,我从客户端发送一个请求,假设是post,
然后后端根据路径进行相关处理。
app.use('/login', users);//路径是/login,交给users这个路由文件
//以下是users中的代码
router.post('/login', function(req, res, next) {//这样会报404错误
res.send('respond with a resource');
});
router.post('/', function(req, res, next) {//这样可以正常返回数据,我不是很理解其中的原因
res.send('respond with a resource');
});
以上就是我的问题,我查过相关文档,但是没能弄清楚,希望大家帮下忙,提点提点我
从里的代码推测,原始代码大概是这个样子。
app.use('/login', users);
这行代码的意思,就是只要路径匹配了/login
,那么,控制权就交给user当来到user上定义的路由时,内部会先把
/login
这个前缀去掉,然后再进行路由匹配。所以当你访问/login
时,user.post('/', fn) 这段会被命中。为什么这样做呢?想象一下,某一天,你访问的地址前缀变了,从
/login
变成/login2
,那么,你只需要改一个地方就行了。就是app.use('/login2', user)
。