Javascript Express:使用多文件路由时检测404错误

Javascript Express:使用多文件路由时检测404错误,javascript,node.js,express,Javascript,Node.js,Express,我是一个新的快速和我的斗争与404错误检测 我有一个名为app.js的主文件,启动服务器并指定文件来处理不同的请求。例如: const app = express(); app.use('/user', passport.authenticate('jwt', { session: false }), userRoutes); app.use('/feedback', passport.authenticate('jwt', { session: false }), feedbackRoute

我是一个新的快速和我的斗争与404错误检测

我有一个名为
app.js
的主文件,启动服务器并指定文件来处理不同的请求。例如:

const app = express();

app.use('/user', passport.authenticate('jwt', { session: false }), userRoutes);
app.use('/feedback', passport.authenticate('jwt', { session: false }), feedbackRoutes);

// Handling errors
app.use(errorController.handle);
然后,我的
userRoutes
文件包含:

const express = require('express');
const router = express.Router();

const UsersController = require('./controllers/UsersController');

router.get('/list', UsersController.listUsers);
因此,由于我有许多路由,到目前为止,这对我来说是有效的,并且允许代码的极大分离。但是现在我遇到了404检测的问题,因为当尝试访问一个不存在的路由时,比如
/test/foo
,我得到了一个通用的express错误,它是

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Error</title>
</head>

<body>
    <pre>Cannot GET /test/foo </pre>
</body>

</html>

错误
无法获取/测试/foo
我如何才能改变这一点,使正确的错误管理返回一个json,并在头中包含正确的http代码?我已经在我的
errorController.handle
函数的最前面放了一个日志,但似乎我们都没有做到


非常感谢

你可以把它放在你的app.js中


这意味着我必须为每个HTTP方法创建一个,当你点击enpoint时,HTTP方法会触发。它不存在,但使用“app.get”意味着如果我在post请求中出现404错误,你就无法进入该函数。所以我的问题是我必须为每个HTTP方法复制-粘贴这些行来处理所有404错误你不需要为每个HTTP方法复制-粘贴这行,你只需要穿上,app.js,是的,它只适用于get,不适用于post方法,如果你想用于post,你必须在app.js中为post方法再添加1行
app.get('*', (req, res) => {
    res.send('ERROR 404 - PAGE NOT FOUND')
})