Задать вопрос
@procode
Разработчик

Как именно мне сделать эту (код в тексте) функцию Node.js асинхронной?

Здравствуйте. Вот функция из serverMiddleware в Nuxt:

export default function(req, res, next) {

    var mysql = require('mysql');
    var connection = mysql.createConnection({
        host: 'localhost',
        user: 'user',
        password: 'secret',
        database: 'db'
    });

    connection.connect();

    connection.query("SELECT * FROM table", function(err, result, fields) {
        if (err) throw err;
        let exp = JSON.stringify(result);
        res.send(exp);
    });

    connection.end();

}


как видите, она просто делает запрос к базе и отдает JSON.

Подскажите пожалуйста, как именно мне сделать эту функцию асинхронной?

И надо мне ее вообще делать асинхронной-то? Все равно ведь придется ждать ответа по-любому (я правильно рассуждаю? или опять что-то упускаю?)

К ней будет потом [асинхронный] запрос из браузера.

Заранее спасибо.
  • Вопрос задан
  • 60 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
Robur
@Robur
Знаю больше чем это необходимо
У вас уже все асинхронное. Вы просто закрываете коннекшен сразу же не дождавшись выполнения запроса.

вынесите создание и закрытие коннекшена к базе из middleware куда-нибудь в инициализацию сервера и у вас будет все как оно и должно быть.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы