简体   繁体   English

Node.Js尝试通过功能从另一个文件打印JSON数组

[英]Node.Js trying to print JSON array via function from another file

Trying to print to my localhost a JSON array of all the managers but I'm greeted with a blank screen. 试图将所有管理器的JSON数组打印到我的本地主机,但屏幕空白。 The arrays are filled correctly, the problem is (most likely) occuring in the server.js file. 数组已正确填充,问题(很可能)发生在server.js文件中。 I'm not sure what though. 我不知道怎么办。 Any help appreciated. 任何帮助表示赞赏。 Edit: Apologies for missing some code in the original post 编辑:抱歉在原始帖子中缺少一些代码

//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 //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;

Make sure that initialize is called in the constructor of your class. 确保在类的构造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;

Calling this module should be like the following: 调用此模块应如下所示:

var MyObject = require('myobject');

var m = new MyObject();
m.getManagers(); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM