Как получить и передать JSON от модели к контроллеру? - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь получить данные json из базы данных (sql) с помощью node.js, а затем передать их в app.get (express.js), но безуспешно.

У меня есть два файла urls.jsкоторый должен получить все URL-адреса из базы данных и в app.js я пытаюсь создать конечную точку API с помощью express.js.Мне удалось получить данные json в app.js, если я напишу запрос и запустю его, но не знаю, как разделить его на два файла.

код, который работает в app.js

app.get('/api/urls', (request, response) => {
    db.query('SELECT * FROM urls', (error, result) => {
    if (error) throw error;
    response.send(result);
  });
});

Я попытался разделить его на два файла, чтобы в urls.js (как у модели) я мог получить что-то вроде

class Urls {
  async getUrls() {
    const sql = `select * from urls`;
    return await db.query(sql); 
  }
}

module.exports = Urls;

, а затем вызвать его в app.js (как у контроллера):

const data = new Urls();
app.get(/api/urls, (req, res) => {
  res.send(data.getUrls());
}

В обоих случаях результат должен быть json

1 Ответ

1 голос
/ 07 мая 2019

Ваша функция getUrls асинхронная, она будет возвращать обещание, поэтому сделайте что-то вроде этого

const data = new Urls();
app.get(/api/urls, (req, res) => {
data.getUrls().then(response=>{
res.send(response);

})

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