Node JS Express与路由GET和POST相同

时间:2016-05-13 15:48:45

标签: node.js express

我正在使用nodejs / express。对于GET和POST http请求,我想为路由做同样的事情。

我这样做:

  app.get('/', function(req, res) {
    // Some code
  });

  app.post('/', function(req, res) {
     // Same code
  });

有没有办法在同一个回调中重构get和post?

由于

3 个答案:

答案 0 :(得分:9)

这似乎是一个非常奇怪的要求。如果行为完全相同,只需指定一个函数来处理两者:

 function myHandler(req, res) {
   // Some code
 }

 app.get('/', myHandler);
 app.post('/', myHandler);

答案 1 :(得分:4)

如果您的网站没有特别使用任何其他方法,您可以使用all

app.all('/', handler)

答案 2 :(得分:3)

一个有点老的问题,但今天仍然面临。

如果你想为所有具有相同处理程序的方法公开 api:

function sameHandler(req, res) {
  // do something here
}
app.all('/', sameHandler);

如果只是想使用相同的路由但使用不同的处理程序:

function getHandler(req, res) {
  // do something here
}
function postHandler(req, res) {
  // do something here
}
function deleteHandler(req, res) {
  // do something here
}
app.route('/').get(getHandler).post(postHandler).delete(deleteHandler);