Node.Js试图从另一个文件通过函数打印JSON数组

试图打印到我的本地主机的所有经理的JSON数组,但我用空白的屏幕迎接。 数组填写正确,问题是(最有可能)发生在server.js文件中。 我不知道是什么。 任何帮助赞赏。 编辑:道歉缺less原始文章中的一些代码

//server.js

var HTTP_PORT = process.env.PORT || 8080; var express = require('express'); var data = require('./data-service'); var getManagers = require('./data-service'); var fs = require('fs'); var app = express(); app.get('/managers', function(req,res){ var responseObject = getManagers(); res.send(responseObject); }); app.listen(8080, function(){ }); app.use(express.static('public')); 

//data-server.js

 var employees = []; var departments = []; var error = 0; var fs = require("fs"); function initialize(){ employees = fs.readFileSync("./data/employees.json", 'utf8', function(err, data){ if(err){ error = 1; } employees = JSON.parse(data); }); departments = fs.readFileSync("./data/department.json", 'utf8',function(err, data){ if(err){ error = 1; } departments = JSON.parse(data); }); } function check() { return new Promise(function(resolve,reject){ if (error === 0){ resolve("Success"); } else if(error === 1){ reject("unable to read file"); } }) }; var getManagers = function(){ check().then(function(){ var employees2 = JSON.parse(employees); for (var i = 0; i < employees2.length; i++){ if(employees2[i].isManager == true){ console.log(employees2[i]); } } }).catch(function(){ console.log("no results found"); }) } initialize(); module.exports = getManagers; 

确保initialize在你的类的构造initialize被调用。

 // Let's assume we create a Node module called // 'myobject' from this. function MyObject() { this.initialize(); } MyObject.prototype = { initialize: function() { .... //use this.employees } check: function() { ... }, getManager: function(){ ...//use this.employees } }; module.exports = MyObject; 

调用这个模块应该如下所示:

 var MyObject = require('myobject'); var m = new MyObject(); m.getManagers();