-3
我希望下面的函數(listServers())能夠在下面的快速請求中使用回調數據。但由於我搜索到的信息有衝突,所以我對回調的設置感到困惑。節點從數據庫查詢中回調以表示請求
服務器運行listServers很好,但在將值返回給請求時似乎超時。
從我的輸出請求/服務器上的是:
forEach length:1
forEach length:2
listServers length:2
::ffff:*IP* - - [30/Nov/2016:09:31:19 +0000] "GET/HTTP/1.1" - -
代碼:
var listServers = function (err, data) {
var list=[];
db.all("SELECT * FROM Servers;", function(err, rows){
rows.forEach(function(e){
var confi = fs.readFileSync(paths.factorioDir + "server" + e.serverID + paths.conf);
var conf = JSON.parse(confi);
var item = {id: e.serverID, conf:conf};
list.push(item);
console.log("forEach length:" + list.length);
});
if (err) throw err;
console.log("listServers length:" + list.length);
data = list;
return data;
});
};
admin.get('/', function(req, res) {
listServers(function(err, data){
console.log(data.length);
servers = data;
console.log("/ servers length"+ servers.length);
var adminTemplate = pug.compileFile(__dirname + '/template.pug');
var context = { servers: servers };
var html = adminTemplate(context);
res.send(html);
});
});
的完整代碼here
http://javascriptissexy.com/understand-javascript-callback-functions-and-use-them/ – xShirase