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

Kiw*_*nax 1 http-verbs node.js express

我试图在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).')
)
Run Code Online (Sandbox Code Playgroud)

但是,该server.all方法将处理无效的路由或无效的HTTP动词。有没有一种方法可以分开对待它们,以便为每种情况发送不同的状态,内容和所有内容?

谢谢你们!

Dav*_*nte 5

我想到的第一件事是在声明所有有用的路径后,为每个要响应的405路径声明错误。例如,在您的帐户中:

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

如果您收到/ account路径的get或post,它将被您的方法处理。其他方法将以405代码响应。

默认情况下,未实现的路径会发送404代码,我认为您无需实现它