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

标签 node.js express http-verbs

我正在尝试找到一种方法来处理 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 谓词。有没有办法将它们分开处理,以便为每个场景发送不同的状态、内容和所有内容?

谢谢大家!

最佳答案

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

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

如果您收到/account 路径的 get 或 post 请求,它将使用您的方法进行处理。其他方法将返回405代码。

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

关于node.js - NodeJS Express - 分别处理 404(未找到)和 405(不允许的方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47776160/

相关文章:

c# - 使用哪个 HTTP 动词来获取基于复杂输入数据的数据

javascript - 使用 Vim 作为 Javascript 沙箱 : How do I write a buffer to node and read the result in another buffer?

javascript - Node.js + ObjectArray + 比较

c++ - 通过 Web 请求 C++/Node.js 的 Windows 身份验证

javascript - 避免 Node.js 服务器上的重复内容

javascript - 如何用Node和Express将图像从后端发送到 View ?

javascript - 接收由 jQuery 发送并由 Node Js 接收的 JSON 形式的数组表单数据

reactjs - 如何连接 React 前端和 Express 后端?

ruby-on-rails-3 - Rails 的 link_to 方法 : GETing when it should DELETE

'translate' 的 HTTP 动词