节点js同步请求代码不起作用

时间:2017-09-14 05:50:32

标签: node.js

请帮我处理以下代码,我试图在app.js中创建一个同步get请求,并希望将此方法暴露给另一个名为index.js的文件

app.js代码

var qnamod = function(query) {
    var request = require('sync-request');
    var querystring = require('querystring').escape(query);
    var resqna = request('GET', 'http://<host>/_analyse?question='+ querystring);
    //console.log(res.getBody());
    var qna = JSON.parse(resqna.getBody('utf8'));
}
exports.qnamod = qnamod;

index.js的代码

   var counting = require('./app.js');
   var resp = counting.qnamod("Forgot password");
   console.log(resp);

执行index.js时出现以下错误: 信息:无法找到给定模式的文件。 无法使用&#34; nc&#34;,回退到较慢的node.js方法进行同步请求。 未定义

1 个答案:

答案 0 :(得分:0)

来自同步请求&#39; README,它说明了这一点。

  

无法使用&#34; nc&#34;,回退到较慢的node.js同步请求方法。   如果您在Windows或某些unix系统上运行,您可能会看到上面的消息。它不会导致任何问题,但会为每个请求增加约100毫秒的开销。如果要加快请求速度,则需要安装nc unix实用程序的实现。这通常通过以下方式完成:apt-get install netcat

所以事实是,这不是一个巨大的错误,它只会减慢你的请求。 但要记住,此库 NOT 供生产使用。这是一个糟糕的范例,会阻止你的线程。