5

我目前有一个正在运行的服务器,前端使用 nodejs、mongo、express 和 W2UI。W2ui 请求来自一个记录数组,其中包含所有参数 record[name]:foo 我想编写一个中间件来编辑请求并在它们到达路由之前对其进行更改。

4

2 回答 2

15

您可以创建自己的中间件来操作请求。我创建了一个中间件,可以像这样将当前服务器时间添加到请求中

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);
});

获取请求的响应将是

{
  "date": "2017-01-31T11:46:37.003Z"
}
于 2017-01-31T11:47:37.517 回答
-1

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

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

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

于 2017-01-31T12:16:03.407 回答