node: ../src/node_http_parser.cc:387: static v8::Handle<v8::Value>
node::Parser::Execute(const v8::Arguments&): Assertion `!current_buffer' failed.
当我尝试将以下代码作为节点服务器的一部分执行时,这是我遇到的确切错误:
function fetchItem(idSection, queryURL){
var item = {};
// forced sync
var readyToContinue = false;
// execute query
var options = {
url: queryURL,
timeout: 2000
}
var request = require('request');
request(options, function (error, response, body) {
if (error){
console.log('[ERROR] Request error: ', error);
// release control
readyToContinue = true;
}
else {
// extract data from response body
var response = JSON.parse(body).response;
if (response.numFound > 0){
var doc = response.docs[0];
// create item object and store it
item.name = doc.name;
item.link = doc.link;
item.image_link = doc.thumb_s;
}
// release control
readyToContinue = true;
}
});
// hold execution until readyToContinue
while(!readyToContinue) {
require('deasync').runLoopOnce();
}
return item;
}
令人烦恼/令人困惑的部分是我的机器上本地运行时请求正常,但是当我在我们的一个开发服务器上运行它时,应用程序崩溃了。非常感谢任何帮助。
注意:我强制执行同步行为,因为我需要多个查询按顺序执行 - 我很欣赏许多回复可能会因为没有异步执行而惩罚我......
答案 0 :(得分:1)
我找到了一种在命令行上将Node升级到最新稳定版本的快捷方法:
sudo npm cache clean -f
sudo npm install -g n
sudo n stable