2 * Connect - methodOverride
3 * Copyright(c) 2010 Sencha Inc.
4 * Copyright(c) 2011 TJ Holowaychuk
12 var deprecate = require('depd')('connect');
13 var methodOverride = require('method-override');
18 * See [method-override](https://github.com/expressjs/method-override)
25 module.exports = function(key){
26 // this is a shim to keep the interface working with method-override@2
27 var opts = { methods: null };
28 var prop = key || '_method';
29 var _headerOverride = methodOverride('X-HTTP-Method-Override', opts);
30 var _bodyOverride = methodOverride(function(req){
31 if (req.body && typeof req.body === 'object' && prop in req.body) {
32 var method = req.body[prop];
33 delete req.body[prop];
38 return function(req, res, next){
39 _bodyOverride(req, res, function(err){
40 if (err) return next(err);
41 _headerOverride(req, res, next);
46 module.exports = deprecate.function(module.exports,
47 'methodOverride: use method-override npm module instead');