Переопределение метода GET to DELETE в nodeJS с помощью якорного тега
Итак, предположим, что у меня есть эта ссылка в моем файле ejs:
<a href="/user/12">Delete</a>
И в моем файле маршрута у меня есть код удаления, такой как:
router.delete( '/user/:id', function ( req, res ) {
// delete operation stuff
});
Таким образом, мой вопрос заключается в том, как я могу переопределить
GET запрос из link в DELETE метод, чтобы мой router.delete маршрут мог его обрабатывать. Прямо сейчас, его только обнаружить запрос как GET. Я использую этотметод Override модуль для его обработки,но, похоже, все примеры использовали элемент формы, а не якорный способ. Кто-нибудь? 1 ответ:
В любом случае, прямо сейчас вот решения, которые я использовал для переопределения запроса
GETс помощьюmiddlewareдо запроса приложения, до сих пор для ссылки я изменяюhref, чтобы выглядеть следующим образом:<a href="/user/12?_method=DELETE" >Delete</a>И в маршруте:
router.use( function( req, res, next ) { // this middleware will call for each requested // and we checked for the requested query properties // if _method was existed // then we know, clients need to call DELETE request instead if ( req.query._method == 'DELETE' ) { // change the original METHOD // into DELETE method req.method = 'DELETE'; // and set requested url to /user/12 req.url = req.path; } next(); });Наконец, запрошенный путь будет соответствовать этому маршруту:
router.delete( '/user/:id', function ( req, res ) { // delete operation stuff });Любой, кто столкнулся с этой проблемой, может попробовать ее, и если кто-то столкнулся с этой проблемой и смог решить ее с помощью отличных решений, пожалуйста, дайте мне знать. Счастливый разыгрываешь!
Comments