Переопределение метода 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 модуль для его обработки,но, похоже, все примеры использовали элемент формы, а не якорный способ. Кто-нибудь?
592   1  

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

    Ничего не найдено.