2

我有以下代码:

app.get('/payment', function(req, res) {
  // do lots of stuff
});

现在我想添加以下内容:

app.post('/payment', function(req, res) {
  req.myvar = 'put something here';
  // now do the same as app.get() above
});

显然我想重用代码。我尝试next('/payment')在 post 处理程序中进行操作并将其放在 get 处理程序之上,但没有运气,可能是因为它们是不同的动词。

我有什么选择?

谢谢。

4

1 回答 1

5

只需将中间件提升到自己的功能并在两条路线中使用它。

function doLotsOfStuff (req, res) {
  // do lots of stuff
}

app.get('/payment', doLotsOfStuff);

app.post('/payment', function(req, res, next) {
  req.myvar = 'put something here';
  next();
}, doLotsOfStuff);
于 2013-10-23T15:06:13.803 回答