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

Javascript Js试图通过函数从另一个文件打印JSON数组,javascript,node.js,Javascript,Node.js,试图向我的本地主机打印一个包含所有管理器的JSON数组,但我看到一个空白屏幕。数组填充正确,问题(很可能)出现在server.js文件中。但我不知道会发生什么。谢谢你的帮助。 编辑:为在原始帖子中丢失一些代码而道歉 //server.js var HTTP_PORT = process.env.PORT || 8080; var express = require('express'); var data = require('./data-service'); var getManagers

试图向我的本地主机打印一个包含所有管理器的JSON数组,但我看到一个空白屏幕。数组填充正确,问题(很可能)出现在server.js文件中。但我不知道会发生什么。谢谢你的帮助。 编辑:为在原始帖子中丢失一些代码而道歉

//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;
var员工=[];
var部门=[];
var误差=0;
var fs=要求(“fs”);
函数初始化(){
employees=fs.readFileSync(“./data/employees.json”,'utf8',函数(err,data){
如果(错误){
误差=1;
}
employees=JSON.parse(数据);
});
departments=fs.readFileSync(“./data/department.json“,'utf8',函数(err,data){
如果(错误){
误差=1;
}
departments=JSON.parse(数据);
});
}
函数检查(){
返回新承诺(功能(解决、拒绝){
如果(错误==0){
决心(“成功”);
}
否则如果(错误===1){
拒绝(“无法读取文件”);
}
})     
};
var getManagers=function(){
check()。然后(函数(){
var employees2=JSON.parse(employees);
对于(变量i=0;i
确保在类的构造函数中调用了
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(); 

确保在类的构造函数中调用了
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(); 

在data-server.js中,employees没有在任何地方定义,它是空的,这就是为什么您会得到空结果的原因因为,我忘记了包含它check()在做什么,它是否负责返回员工您在哪里填写或为“employees”赋值?我在data-server.js中更新了它,employees没有在任何地方定义,它是空的,这就是为什么你会得到空的结果因为,我忘了包括它check()在做什么,它负责返回员工吗?你在哪里填写或给“员工”赋值?我已经更新了它