init.js (853B)
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 * Module dependencies. 13 * @private 14 */ 15 16 var setPrototypeOf = require('setprototypeof') 17 18 /** 19 * Initialization middleware, exposing the 20 * request and response to each other, as well 21 * as defaulting the X-Powered-By header field. 22 * 23 * @param {Function} app 24 * @return {Function} 25 * @api private 26 */ 27 28 exports.init = function(app){ 29 return function expressInit(req, res, next){ 30 if (app.enabled('x-powered-by')) res.setHeader('X-Powered-By', 'Express'); 31 req.res = res; 32 res.req = req; 33 req.next = next; 34 35 setPrototypeOf(req, app.request) 36 setPrototypeOf(res, app.response) 37 38 res.locals = res.locals || Object.create(null); 39 40 next(); 41 }; 42 }; 43