2016-06-29 4 views
0

У меня есть файл connector.js, в котором я хочу экспортировать объект dbResult.Невозможно получить переменную из экспорта модуля

(function(){ 
var Massive = require("massive"); 

var connectionString = "postgres://postgres:[email protected]/postgres"; 
var db = Massive.connectSync({connectionString : connectionString}); 

var dbResult ; 

db.query("Select * from company", function (err, data) { 
     dbResult = data; 
     console.log(data); 
    }); 
})(module.exports); 

Теперь в другой файл, я пытаюсь получить dbResult и отображать данные:

var express = require("express"); 
var app = express(); 

var connectorObject = require("./Connector.js"); 

var Massive = require("massive"); 

app.get("/api/Steves",function(req,res){ 

     res.set("Content-Type","application/json"); 
     res.send(connectorObject.dbResult); 
    }); 


app.listen(3000); 

console.log("Server Started on port 3000..."); 

Но когда я начинаю URL, не в состоянии видеть никакого ответа.

Я ничего не вижу здесь.

ответ

1

То, что вы хотите сделать, это вернуть функцию, которая может быть оценена позже результата:

var Massive = require("massive"); 

var connectionString = "postgres://postgres:[email protected]/postgres"; 
var db = Massive.connectSync({connectionString : connectionString}); 

module.exports.getCompanies = function(callback) { 
    db.query("Select * from company", callback); 
} 

Тогда вы можете получить к нему доступ с других файлов, как:

var connector = require('./Connector'); 
connector.getCompanies(function(err, data) { 
    if (err) return console.error(err); 
    console.log(data); 
});