На данный вопрос уже ответили:
Всем привет. Есть 2 node.js модуля:
console.time('test');
var respond;
var pgp = require('pg-promise')(/*options*/);
var cn = {
host: 'localhost', // server name or IP address;
port: 5432,
database: 'trading_database_eur_usd',
user: 'postgres',
password: '7256'
};
var db = pgp(cn); // database instance;
// select and return user name from id:
db.any('SELECT * FROM eur_usd WHERE primary_key = 4623209;')
.then(user => {
respond = user;
})
.catch(error => {
console.log(error); // print the error;
});
module.exports = {
databaseRespond: respond
};
console.timeEnd('test');
const http = require('http');
const port = 2000;
m = require("../database/database.js");
const requestHandler = (request, response) => {
response.writeHead(200);
console.log(request.method);
console.log(request.headers);
console.log(request.url);
response.write('hi');
response.end();
};
const server = http.createServer(requestHandler);
server.listen(port, (err) => {
if (err) {
return console.log('something bad happened', err)
}
console.log(m.databaseRespond);
});
Задача состоит в том. что бы перебросить значение параметра 'user' из первого модуля во второй;
Первое что мне пришло в голову это создать св-во 'databaseRespond' и положить в него вышеуказанный параметр через переменную 'respond' + затем передать все это дело через 'module.export'.
Но. Почему то после запуска второго файла - консоль выводит: { databaseRespond: undefined }
Вопросы: 1) Почему это происходит? Ведь в первом файле можно через дебаггер наблюдать как результат лежит в необходимом св-ве:
2) Какие есть альтернативные решения подобной задачи с импортом? 3) Как реализовать решение правильнее всего с точки зрения семантики и т.п.
Я бы так сделал. 1 файл
const func = function(db){
return db.any('SELECT * FROM eur_usd WHERE primary_key = 4623209;');
}
module.exports = func;
2 файл добавляете
var pgp = require('pg-promise')(/*options*/);
var cn = {
host: 'localhost', // server name or IP address;
port: 5432,
database: 'trading_database_eur_usd',
user: 'postgres',
password: '7256'
};
var db = pgp(cn);
и в конце
m(db).then(res=>console.log(res)).catch(err=>console.log(err));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Всем добрый день! при клике на кнопки из за отслеживания по клику число перепрыгивает дальше и сообщение выходит позжеПодскажите как лучше...
Как с помощью события popstate закрыть видео при нажати в браузере кнопку назад?
Загрузив свое ios приложение в testflight, столкнулся с проблемой, что в приложении отсутствуют все изображения: логотипы, добавленные мною иконки,...
дали задание, где нужно используя коллекции создать 2 библиотеки с определенным кол-вом книг и проводить операции над нимиТам каждая книга...