express 路由相关的问题

很简单的问题,我从客户端发送一个请求,假设是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');
});

以上就是我的问题,我查过相关文档,但是没能弄清楚,希望大家帮下忙,提点提点我

阅读 2.4k
1 个回答

从里的代码推测,原始代码大概是这个样子。

  1. app.use('/login', users); 这行代码的意思,就是只要路径匹配了/login,那么,控制权就交给user

  2. 当来到user上定义的路由时,内部会先把/login这个前缀去掉,然后再进行路由匹配。所以当你访问/login时,user.post('/', fn) 这段会被命中。

为什么这样做呢?想象一下,某一天,你访问的地址前缀变了,从/login变成/login2,那么,你只需要改一个地方就行了。就是app.use('/login2', user)

var user = express.Router();

user.post('/login', function(req, res, next) {
  res.send('respond with a resource');
});

user.post('/', function(req, res, next) {
  res.send('respond with a resource');
});

app.use('/login', users);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题