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()
)除了您的评论之外,其他都没有解决问题。我必须在线路阻塞后添加代码。非常感谢:-)很高兴,我能帮上忙,作为答案发布:)