首页 > express 路由相关的问题

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');
});

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


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

  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);
【热门文章】
【热门文章】