当我搜索`localhost:3000 / users`时,据说没找到。怎么了?

时间:2017-04-15 10:58:19

标签: node.js express

enter image description here enter image description here

我在app.js中使用Express框架app.use(),在users.js中使用router.get()。当我搜索localhost:3000/users/u时,它工作正常,但是当我搜索localhost:3000/users时,这是一个404错误。怎么了?

3 个答案:

答案 0 :(得分:3)

这是因为/users调用重定向到您的users.js模块,而您不会在其中处理/。要解决此问题,只需添加路线:

// users.js

router.get('/', function (req, res) {
  console.log('It works');
  // ...
});

答案 1 :(得分:0)

当调用app.use('users',users)时,将调用用户,然后调用router.handle(req,res,next)并且它将匹配路径,如果没有相关路径,它会给404找不到错误。 通话地址: https://github.com/expressjs/express/blob/master/lib/router/index.js#L47

答案 2 :(得分:0)

您尚未制作/users路线。

您所做的app.use('/users', users),在相对路径中获取users对象中的所有路径。因此,如果您在users对象中创建/u,则原始网址为http://hostname:port/users/u。您尚未制定可以处理该路径的/users路线。

在users.js中创建router.get('/')路线,一切都会好的。