Запросы MySQL в NodeJS

#mysql #node.js

#mysql #node.js

Вопрос:

Я пытаюсь написать приложение, которое будет проверять, изменилась ли веб-страница. Я использую NodeJS mysql, потому что я с ними знаком.

Итак, на данный момент у меня проблема в том, что мой запрос слишком «медленный», поэтому моя функция не вернет true, хотя должна. Могу ли я как-то заставить свое приложение ждать запроса?

Редактировать:

  checkEntry(webpage, callback) {

    var oldPage;

    this.mysql.query('SELECT OldWebpagecol FROM Web_Scraping.OldWebpage WHERE idOldWebpage = 15',  (err, rows) => {
        if (err) console.log(err);
        oldPage = rows[0].OldWebpagecol;

        if (webpage === oldPage) {
            return true;
        } 
        return false;
    })
}
 

Комментарии:

1. Совет: используйте Promises, если можете, через async и await даже лучше. Также рассмотрите возможность использования более абстрактного уровня, такого как Sequelize , по сравнению с mysql драйвером.

2. Примечание: функция return here в функции обратного вызова ничего не делает, она игнорируется. Вместо этого вам нужно сделать callback(null, webpage === oldPage) .

Ответ №1:

Вы можете использовать async / await при выполнении запроса.

Например,

 (async () => {
  let response = await fetch(‘/api/users’);
})();
 

Комментарии:

1. Но я не извлекаю данные из API, я делаю запрос mysql? Итак, как это будет выглядеть?

2. Напишите свой запрос mysql вместо вызова api. Это не сложно, просто напишите async в начале функции и напишите await в начале выполнения запроса mysql.

3. Если вы добавите какой-нибудь код, я могу вам очень помочь.

4. Теперь я опубликовал свой запрос