Получение пустого {} из таблицы mysql в React и node.js

#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 параметр для ожидания подключения.