问题描述
我正试图找到一种方法来处理我的Express应用程序中的404和405状态代码,但要分开处理它们.
I'm trying to find a way to handle both 404 and 405 status code in my Express application, but handling them separatedely.
例如:我有一个类似以下的路由器:
e.g.: I have a router like the following:
// 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动词.有没有一种方法可以分开对待它们,以便为每种情况发送不同的状态,内容和所有内容?
However, either invalid routes or invalid HTTP verbs are being treated by the server.all
method. Is there a way to treat them separatedely, in order to send different status, content and everything for each scenario?
谢谢大家!
推荐答案
我想到的第一件事是,在声明所有有用的路径后,为要响应的405路径声明每个错误.例如,在您的accountRoutes中:
First thing that come to my mind is to declare for each path you want to response 405 error after you declare all your useful paths.For example, in your accountRoutes:
server.get('/account', ....);
server.post('/account', ...);
server.all('/account', (req, res, next) => {
res.status(405).send('Method not allowed');
});
如果您收到/account路径的get或post,它将被您的方法处理.其他方法将以405代码作为响应.
If you receive a get or post to the /account path it will be treated with your method. Other methods will be responded with 405 code.
未实现Express的路径会默认发送404代码,我认为您无需实现
Paths not implemented express will send a 404 code by default, I think you don't need to implement it
这篇关于NodeJS Express-分别处理404(未找到)和405(不允许使用方法)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!