Node.js node_http_parser错误:断言`!current_buffer'失败

时间:2017-03-15 13:53:44

标签: node.js request

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;
}

令人烦恼/令人困惑的部分是我的机器上本地运行时请求正常,但是当我在我们的一个开发服务器上运行它时,应用程序崩溃了。非常感谢任何帮助。

注意:我强制执行同步行为,因为我需要多个查询按顺序执行 - 我很欣赏许多回复可能会因为没有异步执行而惩罚我......

1 个答案:

答案 0 :(得分:1)

嗯,事实证明问题是我之前应该检查过的......在我的机器上运行的Node版本和开发服务器是不同的。我只需要更新开发服务器。

我找到了一种在命令行上将Node升级到最新稳定版本的快捷方法:

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

来源:https://davidwalsh.name/upgrade-nodejs