2017-10-04 13 views
1

すべてのマネージャのJSON配列をローカルホストに印刷しようとしましたが、空白の画面が表示されます。配列が正しく埋め込まれていれば、問題は(おそらく)server.jsファイルで発生している可能性があります。私はしかし、何がわからない。どんな助けもありがたい。 編集:Node.Js別のファイルから関数を介してJSON配列を印刷しようとしています

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; 
+0

がデータserver.jsで、従業員はあなたが空の結果に – msoliman

+0

口実を得る理由である空で、どこにも定義されていない、私は忘れてしまいましたそれを含めるには – Workkkkk

+0

check()は何をしていますか?返す従業員 – msoliman

答えて

0

initializeがで呼び出されていることを確認し、元の記事にいくつかのコードを逃すための謝罪

//server.jsあなたのクラスのコンストラクタです。

// 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(); 
関連する問題