#javascript #node.js #reactjs #express #react-hooks
#javascript #node.js #reactjs #экспресс #реагирующие хуки
Вопрос:
Итак, я получил экспресс-маршрут
router.post('/:makeamp;:modelamp;:year', function (req, res) {
const newCar = {
make: req.params.make,
model: req.params.model,
year: req.params.year
}
Car.create(newCar);
res.send(newCar);});
Итак, это работает выше, используя postman
http://localhost:8000/buildings/Audiamp;A4amp;2018
Я хочу знать, как сообщение Axios войдет в функциональный компонент react. Вот что у меня есть, но это не попадает в маршрут в express.
const [carFetch, setFetch] = useState('');
const postAxios = async () => {
const payload = { make: 'Audi', model: 'A4', year: 2018 };
const { data } = await axios.post('http://localhost:1337/cars/', payload);
setFetchedData(data);
};
Но это не работает.
~ SRJ
Комментарии:
1. Использовать
URLSearchParams
. Например.const params = new URLSearchParams(payload);
и затем передать это в axios? — Кроме того, я не думаю, что вы хотите использовать.post
? Вы, вероятно, используете.get
вместо этого.2. Правильный пример помог бы лучше. Это почтовый звонок в экспресс.
3. Что бы вы хотели объяснить? Я сделал предложение, которого недостаточно для ответа.
4. Где и как использовать URLSearchParams в приведенном выше сценарии?
5. На самом деле, если вы используете
.get
, вы, вероятно, можете просто передать объект в качестве свойства конфигурации.axios.get('http://localhost:1337/cars', { params: payload })
?
Ответ №1:
Не уверен, чего мы пытаемся достичь здесь, но вот решение: учитывая, что ваши параметры в express спроектированы так, как они есть, нам нужно передавать аргументы как строковый объект:
const [carFetch, setFetch] = useState('');
const postAxios = async () => {
const payload = `Auditamp;A4amp;2018`;
const url = `http://localhost:1337/cars/${payload}`;
const { data } = await axios.post(url);
setFetchedData(data);
};
Это должно попасть в экспресс-URL и должно вызвать post-вызов.
Ответ №2:
Если запрос не попадает в обработчик экспресс-маршрута, должна возникнуть проблема с сопоставлением URL.
И если вы отправляете запрос так, как показано в примере кода react, вам следует искать данные в объекте req.body в обработчике маршрута.