ExpressJS поддержка метода удалить и поставить без методоверды - PullRequest
19 голосов
/ 25 марта 2012

Как мне заставить expressjs использовать методы delete и put для формы?

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

Используя вышеизложенное, отправляется запрос GET в последней стабильной версии Chrome.Это должно быть проблема с браузером?

Есть ли лучший способ переопределить это, не имея специального поля ввода для поддержки этого?

Ответы [ 2 ]

43 голосов
/ 05 апреля 2012

Вам просто нужно установить форму для публикации, затем создать скрытое поле, например

<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());
2 голосов
/ 15 октября 2013

фактически express.bodyParser () устарел в версиях 3.4 Express и 2.9 Connect.Есть проблемы безопасности при использовании express.bodyParser () , объясненные здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...