我在app.js中使用Express框架app.use()
,在users.js中使用router.get()
。当我搜索localhost:3000/users/u
时,它工作正常,但是当我搜索localhost:3000/users
时,这是一个404错误。怎么了?
答案 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('/')
路线,一切都会好的。