NodeJS上下文问题
我遇到了问题,从Node.JS中的sqlite(sqlite3)库中写入套接字(使用http)
https://gist.github.com/RyanCopley/6004c3ce372e060bbf18
第68至75行,我有4次尝试写。 在db.each之外,一切工作在任何情况下。 在它的内部,它崩溃悲惨。 我不完全确定为什么,但我觉得两个图书馆之间有冲突
BTW我已经知道连接SQL语句是不好的:3
这是因为db.each
的callback函数是asynchronous调用的。 这意味着第79行: res.end()
将在res.write("Found row!");
之前res.write("Found row!");
,触发一个错误。
我想你想要做的是这样的:
db.serialize(function() { that.res.write("["); // works db.each("SELECT * FROM messages WHERE channel = '"+q.chan+"' AND id > "+q.since+" ORDER BY id", function(err, row) { res.write("Found row!"); //does not work that.res.write("Found row!"); //does not work console.log("Found row!"); }); res.write("]");//works });
- 如何创build一个从HTTP / HTTPS API获取数据的Alexa Skill(在AWS Lambda上使用Node.js的“Alexa技能工具包”)
- NodeJS如何在networking模块中实现请求/响应
- 正确的方法来设置响应状态和JSON内容的REST API使用nodejs和express
- Express.js:已在REST API上发送的标头
- Node JS / Express:如何parsing外部API调用的多部分响应
- nodejspipe道https响应request.post和写入文件
- 如何在使用iojs创buildhttp请求时捕获EHOSTDOWN套接字错误?
- 多久打一个sqlite数据库
- 如何通过meteor来提供HTTP请求