Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js express中间件修改请求_Node.js_Mongodb_Express_W2ui - Fatal编程技术网

Node.js express中间件修改请求

Node.js express中间件修改请求,node.js,mongodb,express,w2ui,Node.js,Mongodb,Express,W2ui,目前,我有一个正在运行的服务器,前端使用nodejs、mongo、express和W2UI。 W2ui请求以包含所有参数的记录数组形式出现 记录[名称]:foo 我想编写一个中间件,在请求到达路由之前对其进行编辑和更改。您可以创建自己的中间件来处理请求。我创建了一个中间件,将当前服务器时间添加到请求中,如下所示 var addDate = function(req, res, next) { req.body.date = new Date(); next(); } app.get('

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

您可以创建自己的中间件来处理请求。我创建了一个中间件,将当前服务器时间添加到请求中,如下所示

var addDate = function(req, res, next) {
  req.body.date = new Date();
  next();
}
app.get('/', addDate, function(req, res) {
  res.send(req.body);
});
现在,我可以将此中间件用于以下所有请求:

app.use(addDate);
或者去这样一条特殊的路线

var addDate = function(req, res, next) {
  req.body.date = new Date();
  next();
}
app.get('/', addDate, function(req, res) {
  res.send(req.body);
});
get请求的响应将是

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

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

order: [
  'startRequestTimer',
  'cookieParser',
  'session',
  'bodyParser',
  'xframe',
  'handleBodyParserError',
  '**myRequestLogger**',
  'compress',
  'methodOverride',
  // 'poweredBy',
  '$custom',
  'router',
  'ravenRequestHandler',
  'ravenErrorHandler',
  'www',
  'favicon',
  '404',
  '500'
],
myrequestLogger是在此处记录请求的函数