Node.js 404路由器和不同路由文件的使用
我在我的应用程序中使用不同的路线。所有这些路由都有一个主题文件。比如:Node.js 404路由器和不同路由文件的使用,node.js,Node.js,我在我的应用程序中使用不同的路线。所有这些路由都有一个主题文件。比如: index.js->用于/级别中的基本路由。喜欢/欢迎或 /仪表板 cases.js->用于使用/cases/case\u create等编辑表单 tcafe.js->用于测试路径,如/tcafe/startit users.js->用于/users/login或/users/register等用户操作 在我的应用程序中,我使用: // Routes app.use('/', require('./routes/inde
- index.js->用于/级别中的基本路由。喜欢/欢迎或 /仪表板
- cases.js->用于使用/cases/case\u create等编辑表单
- tcafe.js->用于测试路径,如/tcafe/startit
- users.js->用于/users/login或/users/register等用户操作
// Routes
app.use('/', require('./routes/index.js'));
app.use('/users', require('./routes/users.js'));
app.use('/cases', require('./routes/cases.js'));
app.use('/tcafe', require('./routes/tcafe.js'));
好的,现在我想添加一个404处理程序,这样我就可以避免“无法获取/dashboard2”
我现在在所有管线文件的末尾添加了:
router.use((req, res, next) => {
next({
status: 404,
message: 'Not Found',
});
});
router.use((err, req, res, next) => {
if (err.status === 404) {
return res.status(400).render('404');
}
if (err.status === 500) {
return res.status(500).render('500');
}
next();
});
现在,如果使用“/dashboard2”,我会得到一个404,但所有其他路由也会得到一个404
例如“/users/login”或“/cases/create\u case”
将代码移动到主js文件(server.js)也不起作用
有人知道如何使用404保护所有路线的整个应用程序吗 如官方声明所述:
您所需要做的就是在堆栈的最底部(所有其他函数的下方)添加一个中间件函数来处理404响应
因此,在您的情况下,您需要在所有
router.use()
调用之后放置404处理程序。您是否尝试添加app.use((req,res,next)=>res.status(404.send('Not found,boy')代码>在上面所有的应用程序之后。使用()?(请注意,我没有使用router.use()
,而是使用app.use()
)除了您的评论之外,其他都没有解决问题。我必须在线路阻塞后添加代码。非常感谢:-)很高兴,我能帮上忙,作为答案发布:)