#mysql #node.js #reactjs
Вопрос:
По какой-то причине я возвращаю пустой объект из таблицы mysql, таблица заполнена некоторыми деталями отпуска. И я хочу отобразить их с помощью карты в моем приложении react.
На стороне клиента я выполняю запрос с использованием состояния эффекта и axios.
useEffect(() => {
axios.get("http://localhost:3001/vacations")
.then((response) => {
let vacationsResponse = response.data;
dispatch({ type: ActionType.GetAllVacations, payload: vacationsResponse })
}).catch(err => {
console.log("Failed to get data" err)
})
}, [dispatch])
это серверная сторона:
const vacationsControllers = require("./Controllers/vacationsControllers");
const cors = require("cors");
server.use(cors({ origin: "http://localhost:3000" }));
server.use("/users", usersController);
server.use("/vacations", vacationsControllers);
server.listen(3001, () => console.log("Listening on http://localhost:3001"));
это папка vacationsControllers:
router.get("/", async (request, response) => {
let vacationsData = request.body;
try {
await vacationsDao.getAllVacations(vacationsData);
response.json();
console.log(vacationsData) *get this empty in the node terminal*
} catch (e) {
console.error(e);
response.status(600).json();
}
});
module.exports = router;
Выполнение sql (папка vacationDao):
let connection = require("./connection-wrapper");
async function getAllVacations(vacationsData) {
const sql = `SELECT * FROM current_deals`;
await connection.executeWithParameters(sql);
return vacationsData;
}
module.exports = {
getAllVacations,
};
Комментарии:
1. Похоже , вы ничего не делаете с возвращаемым значением
executeWithParameters
, вы просто возвращаете то жеvacationsData
самое, что было передано вgetAllVacations
2. Неясно, внесли ли вы какие — либо изменения в
mysql
модуль в своейexecuteWithParameters()
функции. Пожалуйста, обновите свой вопрос, чтобы также показать содержимое вашегоconnection-wrapper
файла. Если все в этом файле работает должным образом, вам все равно потребуется обновить своюgetAllVacations()
функцию, как отметил @a544jh. В настоящее время все, что вы делаете, — это возвращаете ту же переменную, которую вы использовали в функции для начала. Вы захотите присвоить результаты ожидаемой функции новой переменной, а затем вернуть ее.3. Большое вам спасибо, ваш ответ мне очень помог! Я задал
vacationData
параметр для ожидания подключения.