标签:
错误信息
F:\my_dev_work\todo\node_modules\express\lib\express.js:99 throw new Error(‘Most middleware (like ‘ + name + ‘) is no longer bundle ^ Error: Most middleware (like methodOverride) is no longer bundled with Express a nd must be installed separately. Please see https://github.com/senchalabs/connec t#middleware. at Function.Object.defineProperty.get (F:\my_dev_work\todo\node_modules\expr ess\lib\express.js:99:13) at Object.<anonymous> (F:\my_dev_work\todo\app.js:23:16) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17) at Object.<anonymous> (F:\my_dev_work\todo\bin\www:7:11) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Function.Module.runMain (module.js:501:10) at startup (node.js:129:16) at node.js:814:3
原因:express版本的问题
express3.x代码:
app.use(express.methodOverride(‘_method‘)); app.use(express.static(path.join(__dirname, ‘public‘)));
页面代码:
<form method=‘post‘ action=‘/tasks/<%=task.id%>‘> <input type=‘hidden‘ name=‘_method‘ value=‘put‘> <input type=‘text‘ name=‘taskno‘ value=‘<%=task.taskno%>‘> <input type=‘text‘ name=‘taskname‘ value=‘<%=task.taskname%>‘> <input type=‘submit‘ value=‘save‘> </form>
express4.x代码:
npm install method-override
var methodOverride = require(‘method-override‘); app.use(methodOverride(‘_method‘)); app.use(express.static(path.join(__dirname, ‘public‘)));
页面代码:
<form method=‘post‘ action=‘/tasks/<%=task.id%>?_method=put‘> <input type=‘text‘ name=‘taskno‘ value=‘<%=task.taskno%>‘> <input type=‘text‘ name=‘taskname‘ value=‘<%=task.taskname%>‘> <input type=‘submit‘ value=‘save‘> </form>
app.use(express.methodOverride(‘_method‘))执行报错
标签:
原文地址:http://my.oschina.net/imhaha/blog/507797