Передача числового значения из модуля не работает.
Есть данный код, который производит поиск и подсчёт количества строк, в которых direction = 1
const sqlite3 = require('sqlite3').verbose();
// open the database
let db = new sqlite3.Database('crdxims.db3');
let sql = `SELECT COUNT(*) AS total FROM ACS_EVENT WHERE direction = 1`
var total
// first row only
db.each(sql, [total], (err, row) => {
if (err) {
return console.error(err.message);
}
return row
? console.log(row.total)
: console.log('No {total}');
});
// close the database connection
db.close( );
module.exports = total;
При запуске подсчёт ведёт верно. Также существует аналогичный файл, который ведёт подсчёт данных с direction = 2 Также есть ещё 1 файл, в котором считается разность между этими двумя:
var sum1 = require('./each');
var sum2 = require('./each2');
var sum = sum2 - sum1;
console.log(sum);
При попытка запустить этот файл в node.js, он выводит следующее: ![]() Если заменить в console.log значение sum на sum1
var sum1 = require('./each');
var sum2 = require('./each2');
var sum = sum2 - sum1;
console.log(sum1);
получается: ![]() undifined, то есть значение не определено. Получается, значение не передаётся. Что я делаю не так?:help: |
werter1995, ты разделом не ошибся?
Общие вопросы Javascript |
То, что в консоле показывается, это повезло...
Надо запросы завернуть в Promise. Потом Promise.all... Или передавать callback... p.s. почему each? ;) |
Цитата:
SELECT COUNT(*) total FROM table_name WHERE direction = 1 OR direction = 2 GROUP BY direction Запрос вернет две записи, вычитайте. Можно вообще сразу получить в запросе и разницу. |
| Часовой пояс GMT +3, время: 18:24. |