Подтвердить что ты не робот

Expressjs поддержка метода delete и put без методаoverride

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

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

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

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

4b9b3361

Ответ 1

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

<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

Фактически express.bodyParser() устарел в версиях 3.4 Express и 2.9 от Connect. Существуют проблемы безопасности при использовании выражения express.bodyParser() здесь