expressjs支持方法删除,并且不使用methodoverride

时间:2012-03-25 09:56:56

标签: forms node.js express

如何让表达式使用表单的删除和放置方法?

<form method="DELETE" action="">

使用以上内容发送最新稳定版Chrome中的GET请求。这应该是浏览器问题吗?

有没有更好的方法来覆盖它而没有支持这些的特殊输入字段?

2 个答案:

答案 0 :(得分:43)

您只需将表单设置为发布,然后创建一个隐藏字段,如

<input type="hidden" name="_method" value="delete"/>

根据您使用的快速版本设置配置。然后,表单方法将被该隐藏字段的值覆盖。

最新版本的将要求您安装method-override软件包,然后按照以下方式配置您的应用:

var methodOverride = require('method-override')
app.use(methodOverride('_method'));

旧版本可能会使用:

app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(express.methodOverride());

更老的用法是:

app.use(express.bodyParser());
app.use(express.methodOverride());

答案 1 :(得分:2)

实际上是express.bodyParser()在Express版本3.4和Connect版本2.9中已弃用。 使用express.bodyParser()explained here

时存在安全问题