404 (Не найден) после запроса на удаление с использованием выборки

#javascript #html #node.js #rest #fetch

#javascript #HTML #node.js #остальное #выборка

Вопрос:

Я вызываю запрос на удаление с помощью выборки. Запрос работает нормально (статус 200 OK для Postman). Однако при перенаправлении на '/' after delete в моей консоли появляется следующая ошибка:

 script.js:2 DELETE http://localhost:3000/ 404 (Not Found)
 

Содержимое script.js:

 function deleteItem(id) {
    fetch('http://localhost:3000/items/'   id, {
        method: 'DELETE'
    })
        .then(res => res.text()) // or res.json()
        .then(res => console.log(res));
}
 

(строка 2 — это выборка)

Они находятся в app.js файл:

 app.get('/', (req, res) => {
    res.render('index.ejs', {count: items.length, items: items});
    console.log(items);
});

app.delete('/items/:id', urlencodedParser, (req, res) => {
    let index = parseInt(req.params.id);
    items.splice(index, 1);

    res.redirect('/');
});
 

Я точно знаю, что рендеринг в get не работает должным образом, потому console.log(items) что не выполняется. Я в замешательстве, потому что перенаправление в моем методе POST работает нормально.

Кто-нибудь может помочь мне понять, почему я получаю эту ошибку, пожалуйста?Я точно знаю, что элемент успешно удаляется, и когда я обновляю страницу вручную, HTML естественным образом загружается с обновленными данными.

Комментарии:

1. Не выполняйте перенаправления для запросов API. Пусть клиент решает, что делать после завершения запроса

2. сделайте res.status(200).json({ message: "whatever" }) вместо этого, это выглядит как API конечная точка, не делайте перенаправления

3. Или вы можете добавить условную проверку, чтобы проверить, завершен ли запрос, если да, только затем перенаправить на другую страницу

4. Значит, всегда плохо выполнять автоматические перенаправления после завершения запроса? Потому что тогда как сделанные обновления будут отображаться на экране?

5. Обычно это интерфейс, который показывает обновление. не api