Добрый день, не могу понять обернуть метод в promise.
Ситуация следующая, есть сервер на node.js с express. В качестве БД решил использовать mysql. На стороне сервера я проверяю заполнение формы регистрации и в случае несоответствия собираю объект с ошибками и посылаю его на клиент. Одна из проверок на существование логина и вот тут я застрял, т.к. ответ от БД приходит с какой-то задержкой, а как это все поместить в промис я не понимаю.
const express = require('express');
const mysql = require('mysql');
const connection = mysql.createConnection({
host: `localhost`,
user: `root`,
password: ``,
database: `${dbName}`,
});
function verifyData(userData){
let ipErr = verifyIp(userData.ip);
let nameErr = verifyName(userData.name);
let loginErr = verifyLogin(userData.login);
let passErr = verifyPass(userData.pass, userData.repass);
return {ip: ipErr, name: nameErr, login: loginErr, pass: passErr};
}
function verifyLogin(login){
let result = 0;
const sql = `SELECT login FROM user_data WHERE login = '${login}'`;
connection.query(sql,
function selectUser (error, results, fields) {
if (error) throw error;
if(results[0] !== undefined){
result = 'Логин уже используется';
}
});
return result;
}
Как вы поняли в качестве result в verifyLogin мне бы хотелось получать и ошибку, а так возвращается всегда 0. Куда засунуть async, await или promise, чтобы result отправлялся только после выполнения функции запроса?