NodeJS Express - 分别处理404(未找到)和405(不允许的方法)

时间:2017-12-12 15:30:34

标签: node.js express httpverbs

我正在尝试找到一种方法来处理我的Express应用程序中的404和405状态代码,但是单独处理它们。

例如:我有一个类似以下的路由器:

// Add routes for every path we define here.
server.use('/', require('./indexRoutes'))
server.use('/account', require('./accountRoutes'))

// Handling route errors.
server.all('*', (request, response) => 
    response.status(404).send('Invalid route (not found).')
)

但是,server.all方法正在处理无效路由或无效的HTTP谓词。有没有办法单独处理它们,以便为每个场景发送不同的状态,内容和所有内容?

谢谢你们!

1 个答案:

答案 0 :(得分:5)

我想到的第一件事就是在声明所有有用路径后声明每个要回复405错误的路径。 例如,在您的accountRoutes:

server.get('/account', ....);
server.post('/account', ...);
server.all('/account', (req, res, next) => {
   res.status(405).send('Method not allowed');
});

如果您收到来自/帐户路径的获取或发布信息,则会使用您的方法对其进行处理。其他方法将使用405代码进行响应。

未实现快递的路径默认会发送404代码,我认为您不需要实现它