Передача числового значения из модуля не работает.
Есть данный код, который производит поиск и подсчёт количества строк, в которых 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, время: 09:55. |