【发布时间】:2014-05-15 19:05:57
【问题描述】:
我正在使用带有来自大气的“http-methods”包和来自 npm 的“node-sqlite3”包的陨石应用程序。考虑流动的代码。
var results = null;
HTTP.methods({
'list': function(data) {
var sqlite3 = Npm.require('sqlite3').verbose();
var db = new sqlite3.Database(':memory:');
db.serialize(function() {
db.run("CREATE TABLE lorem (info TEXT)");
var stmt = db.prepare("INSERT INTO lorem VALUES (?)");
for (var i = 0; i < 10; i++) {
stmt.run("Ipsum " + i);
}
stmt.finalize();
db.all("SELECT rowid AS id, info FROM lorem", function(err, rows) {
console.log(rows);
results = rows;
});
});
console.log("Closing DB");
db.close();
console.log("Sending back response");
console.log(results);
return results;
}
});
这里使用域/列表调用上述函数。我想返回 resultSet 作为对请求的响应。但取而代之的是返回“null”。控制台的输出如下所示。
I20131229-23:50:20.092(1)? Closing DB
I20131229-23:50:20.113(1)? Sending back response
I20131229-23:50:20.117(1)? null
I20131229-23:50:20.172(1)? [ { id: 1, info: 'Ipsum 0' },
I20131229-23:50:20.181(1)? { id: 2, info: 'Ipsum 1' },
I20131229-23:50:20.182(1)? { id: 3, info: 'Ipsum 2' },
I20131229-23:50:20.183(1)? { id: 4, info: 'Ipsum 3' },
I20131229-23:50:20.199(1)? { id: 5, info: 'Ipsum 4' },
I20131229-23:50:20.199(1)? { id: 6, info: 'Ipsum 5' },
I20131229-23:50:20.199(1)? { id: 7, info: 'Ipsum 6' },
I20131229-23:50:20.202(1)? { id: 8, info: 'Ipsum 7' },
I20131229-23:50:20.202(1)? { id: 9, info: 'Ipsum 8' },
I20131229-23:50:20.203(1)? { id: 10, info: 'Ipsum 9' } ]
请针对该问题提出适当的解决方案。
注意:给出的代码是实际代码的同义词。如果您想了解更多详情,请告诉我。
【问题讨论】: