【问题标题】:How to handle invalid routes from two files如何处理来自两个文件的无效路由
【发布时间】:2019-06-08 14:40:24
【问题描述】:

我正在尝试解决我想要捕获无效路由并在 Node 中抛出消息的情况。

我有两个文件,一个用户文件和一个任务文件。如果我点击了一个不存在的端点/路由,我想向屏幕抛出一条消息,说明它是一个无效的路由。

我的问题是,我专门添加了一段代码,用于在 user.js 和 task.js 这两个文件中捕获这些无效路由,但是当我在第二条路由 (task.js) 中搜索有效请求时,我从第一个文件 (user.js) 中获取无效路由错误。这是我在每个文件末尾的两个文件中的代码:

//handles invalid route requests (in user.js file)
router.get('*', (req, res) => {
    return res.status(404).send({error: 'Route not found'})
})

//handles invalid route requests (in task.js file)
router.all('*',(req, res) => {
    return res.status(404).json({error: 'Route not found'})
})

解决方案是将这段代码仅包含在一个路由文件中吗?例如,此代码是否应该只存在于 task.js 文件中,以便它可以检查两个路由文件,直到遇到无效路由案例?

【问题讨论】:

    标签: javascript node.js json express routes


    【解决方案1】:

    所以你正在使用 express-js...我曾经使用它在带有 express-skeleton 模块的 seleton 中生成...

    正如您在 github 页面中看到的那样,app.js 文件的架构是调用您所有的路由并在错误路由之后调用。请看here

    在你的 app.js 的末尾:

    app.use(function(req, res, next) {
      next(createError(404));
    });
    // error handler
    app.use(function(err, req, res, next) {
      // set locals, only providing error in development
      res.locals.message = err.message;
      res.locals.error = req.app.get('env') === 'development' ? err : {};
      // render the error page
      res.status(err.status || 500);
      res.render('error');
    });
    

    【讨论】:

      猜你喜欢
      • 2021-12-26
      • 1970-01-01
      • 2017-05-13
      • 1970-01-01
      • 2022-11-24
      • 2023-03-20
      • 1970-01-01
      • 2016-05-23
      • 2014-02-05
      相关资源
      最近更新 更多