raspberryGPIOhtmlserver/node_modules/connect/lib/middleware/methodOverride.js
node_modules/connect/lib/middleware/methodOverride.jsRaw
1
2/*!
3 * Connect - methodOverride
4 * Copyright(c) 2010 Sencha Inc.
5 * Copyright(c) 2011 TJ Holowaychuk
6 * MIT Licensed
7 */
8
9/**
10 * Method Override:
11 *
12 * Provides faux HTTP method support.
13 *
14 * Pass an optional `key` to use when checking for
15 * a method override, othewise defaults to _\_method_.
16 * The original method is available via `req.originalMethod`.
17 *
18 * @param {String} key
19 * @return {Function}
20 * @api public
21 */
22
23module.exports = function methodOverride(key){
24 key = key || "_method";
25 return function methodOverride(req, res, next) {
26 req.originalMethod = req.originalMethod || req.method;
27
28 // req.body
29 if (req.body && key in req.body) {
30 req.method = req.body[key].toUpperCase();
31 delete req.body[key];
32 // check X-HTTP-Method-Override
33 } else if (req.headers['x-http-method-override']) {
34 req.method = req.headers['x-http-method-override'].toUpperCase();
35 }
36
37 next();
38 };
39};
40