Нужно написать функцию, которая принимает строку SQL-запрос, и возвращает массив полученных из БД данных. Добился только чтобы данные выводились в консоль внутри функции, но как сделать чтобы функция возвращала данные не могу понять. Код:
const Connection = require('tedious').Connection;
const Request = require('tedious').Request;
const { request } = require('http');
const config = require('./config_db');
const connection = new Connection(config);
connection.on('connect', (err) => {err ? console.log(err) : select(query)});
const select = (query) => {
request = new Request(query);
request.on('row', (columns) => {
columns.map(column => {
console.log(column.value)
})
})
connection.execSql(request)
return request
};
module.exports = select;
Но такая функция ничего не возвращает.
Я добился чтобы возврат был, но очень большим костылем, типа такого:
const Connection = require('tedious').Connection;
const Request = require('tedious').Request;
const { request } = require('http');
const config = require('./config_db');
const addState = require('./state').addState; // функция делает push в state
const connection = new Connection(config);
connection.on('connect', (err) => {err ? console.log(err) : select(query)});
const select = (query) => {
request = new Request(query);
request.on('row', (columns) => {
columns.map(column => {
addState(column.value)
})
})
connection.execSql(request)
const state = require('./state').state // импортирую именно сдесь, потому что если импортировать раньше вернется пустой state
return state
};
module.exports = select;
Так он еще срабатывает только на второй раз. :)
Как сделать, чтобы функция возвращала данные?