arnaucube
arnaucube/raspberryGPIOhtmlserverPublic Self-hosted repository
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