表达中间件来修改请求

时间:2017-01-31 11:21:45

标签: node.js mongodb express w2ui

我目前有一个正在运行的服务器,前端使用nodejs,mongo,express和W2UI。 W2ui请求进入一个包含所有参数的记录数组  记录【名称】:FOO 我想编写一个中间件来编辑请求并在它们到达路径之前对其进行更改。

2 个答案:

答案 0 :(得分:5)

您可以创建自己的中间件来操纵请求。我已经创建了一个中间件,可以将当前服务器时间添加到请求中,如此

var addDate = function(req, res, next) {
  req.body.date = new Date();
  next();
}

现在,我可以将此中间件用于所有这样的请求:

app.use(addDate);

或像这样的特定路线

app.get('/', addDate, function(req, res) {
  res.send(req.body);
});

来自get请求的响应将是

{
  "date": "2017-01-31T11:46:37.003Z"
}

答案 1 :(得分:-1)

您可以在http.js中执行此操作,创建一个以您想要的方式修改请求的函数,然后按顺序给出它,如下所示: -

order: [
  'startRequestTimer',
  'cookieParser',
  'session',
  'bodyParser',
  'xframe',
  'handleBodyParserError',
  '**myRequestLogger**',
  'compress',
  'methodOverride',
  // 'poweredBy',
  '$custom',
  'router',
  'ravenRequestHandler',
  'ravenErrorHandler',
  'www',
  'favicon',
  '404',
  '500'
],

myrequestLogger是一个在此处记录请求的函数。