Я пытаюсь сделать следующее: у меня есть сервер, на котором запущен Vue.js.После «npm run dev» приложение отображается на localhost: 8080.Теперь, после того, как все построено, выполняется этот фрагмент кода в компоненте: (у меня сервер NodeJs работает на порту 3000)
HelloWorld.Vue
mounted () {
axios.get('http://localhost:3000/')
.then((response) => {
console.log(response.data);
this.User = response.data;
})
.catch((error) => {
console.log(error);
});
}
Что в основном будет запрашивать сервер NodeJS для выполнения запроса к базе данных Post Gres.
Server.Js
app.get('/', function (req, res) {
return res.send(connectBD());
});
function connectBD(){
res = client.query("Select * from entidademeio");
res.rows.forEach(row=>{
console.log(row);
tmp = JSON.stringify(row['nomeentidade']) + "";
queryResult += tmp; //Imprime as rows da b
});
client.end();
return queryResult;
}
Но я получаю эту ошибку со стороны Vue:
Request failed with status code 500
at createError (createError.js?16d0:16)
at settle (settle.js?db52:18)
at XMLHttpRequest.handleLoad (xhr.js?ec6c:77)
Однакоесли я возвращаю строку:
Server.Js
app.get('/', function (req, res) {
return res.send("bla");
});
, она отображается так, как я хотел в консоли на Vue Side.Может кто-нибудь, пожалуйста, предоставьте мне решение и некоторые фрагменты кода. Я хочу, чтобы результат запроса отображался на консоли из Vue Side.Спасибо
РЕДАКТИРОВАТЬ:
Если я изменю свой ConnectBD () на:
async function connectBD(){
var conString = "postgres://**********************";
var client = new pg.Client(conString);
var result;
await client.connect();
res = await client.query("Select * from entidademeio");
res.rows.forEach(row=>{
console.log(row);
tmp = JSON.stringify(row['nomeentidade']) + "";
result += tmp; //Imprime as rows da b
});
await client.end();
console.log(result);
return result;
}
Я получу пустой массив со стороны Vue, нотерминал из узла возвращает правильный результат.
NEW EDIT: пустой массив: пустой массив на консоли со стороны Vue