arnaucube
arnaucube/thoughtsPublic Self-hosted repository
thoughts/node_modules/express/lib/middleware/init.js
node_modules/express/lib/middleware/init.jsRaw
 1/*!
 2 * express
 3 * Copyright(c) 2009-2013 TJ Holowaychuk
 4 * Copyright(c) 2013 Roman Shtylman
 5 * Copyright(c) 2014-2015 Douglas Christopher Wilson
 6 * MIT Licensed
 7 */
 8
 9'use strict';
10
11/**
12 * Initialization middleware, exposing the
13 * request and response to each other, as well
14 * as defaulting the X-Powered-By header field.
15 *
16 * @param {Function} app
17 * @return {Function}
18 * @api private
19 */
20
21exports.init = function(app){
22  return function expressInit(req, res, next){
23    if (app.enabled('x-powered-by')) res.setHeader('X-Powered-By', 'Express');
24    req.res = res;
25    res.req = req;
26    req.next = next;
27
28    req.__proto__ = app.request;
29    res.__proto__ = app.response;
30
31    res.locals = res.locals || Object.create(null);
32
33    next();
34  };
35};
36