简体   繁体   中英

express middleware to modify requests

i currently have a running server using nodejs, mongo, express and W2UI for the front end. W2ui requests come in an a record array that has all the parameters record[name]:foo i want to write a middleware that edits requests and changes them before they reach the route.

You can create your own middleware to manipulate the request. I've created a middleware that adds current server time to the request like this

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

Now, I can use this middleware for all requests like this:

app.use(addDate);

or to a spesific route like this

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

The response from the get request will be

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

You can do this in http.js, create a function to modify request in a way you want and then give it in order array like below : -

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

myrequestLogger is a function to log the request here.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM