NodeJS Express – 单独处理404(Not Found)和405(Method Not Allowed)

我试图find一种方法来处理我的快速应用程序中的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).') ) 

但是,无效的路由或无效的HTTP动词正在由server.all方法处理。 有没有办法独立对待他们,以便为每个场景发送不同的状态,内容和一切?

谢谢你们!

首先我想到的是在声明所有有用的path之后,为每条path声明你想要回应的错误。 例如,在您的帐户路由:

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

如果您收到/发送到/帐户path,它将被用您的方法处理。 其他方法将用405代码进行响应。

未实现的path默认会发送404代码,我想你不需要实现它