Могу ли я перенаправить запрос «GET» на запрос «POST» в express. js? - PullRequest
0 голосов
/ 10 июля 2020

Я хочу загрузить страницу «получить все», когда я нахожусь на главной странице. Код ниже:

const express = require('express');
const app = express();

const PORT = process.env.PORT || 3000;

app.listen(PORT, () => { console.log(`express server is listening on port ${PORT}`) });

app.get('/', (req: any, res: any) => {
    res.redirect('/get-all');
});

app.post('/create', (req: any, res: any) => {

});

app.post('/get-all', (req: any, res: any) => {
    res.send('get all') // error: get all not found
});

app.post('/delete', (req: any, res: any) => {

});

app.post('/update', (req: any, res: any) => {

});

Ошибка: не удается GET / get-all (я пытался запустить через Postman). Я не нашел четкого ответа в документации. Спасибо!

1 Ответ

4 голосов
/ 10 июля 2020

Нет. Перенаправления могут переключать запрос на GET, но не на POST.

В любом случае это не имеет особого смысла. Запросы GET должны быть безопасными и идемпотентными. Переключение запроса POST (а это не так) - довольно опасная форма неожиданного поведения. В любом случае у запроса не будет тела, содержащего данные POST.

Ваш метод называется «get-all» и, похоже, в любом случае ничего не сохраняет / обновляет / меняет, поэтому правильный глагол для доступа к нему будет GET в первую очередь.

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