"没有定义restClient"虽然它确实是

时间:2016-05-26 17:52:17

标签: javascript node.js restify

这是我的代码片段

  console.log("IS RESTCLIENT UNDEFINED?");
  console.log(restClient === undefined);
  console.log(restClient);

  restClient.get(options, function(resterr, restreq, restres, restobj) {
    assert.ifError(resterr);
    //not important
    return next();
  });

问题在于,当它被执行时(它基本上是路由的大多数处理程序,简单的东西,没有什么深奥的)输出如下:

IS RESTCLIENT UNDEFINED?
false
JsonClient {<a lot of stuff describing the client>}

assert.js:327
assert.ifError = function(err) { if (err) throw err; };
                                      ^
InternalError: restClient is not defined
at parseResponse (/srv/oms-profiles-module/node_modules/restify/lib/clients/json_client.js:67:23)
at IncomingMessage.done (/srv/oms-profiles-module/node_modules/restify/lib/clients/string_client.js:151:17)
at IncomingMessage.g (events.js:260:16)
at emitNone (events.js:72:20)
at IncomingMessage.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:893:12)
at doNTCallback2 (node.js:430:9)
at process._tickCallback (node.js:344:17)

客户端在文件的开头定义&#34;像往常一样&#34; (工作到现在),它使用npm模块解析。我甚至不知道问题可能是范围问题还是其他什么问题,有没有人对我可以在哪里发出任何好的建议?

由于

更新:这不是范围等问题,我猜想;我怀疑它是一种有效的东西,因为否则错误将是&#34; ReferenceError:restClient未定义&#34;。尽管如此,我还是因为之前的工作而感到茫然,但我并未对其进行任何重大改变。 Restify版本是3.0.3

1 个答案:

答案 0 :(得分:0)

好吧,答案很简单,我觉得很愚蠢(我应该这样做),

由于存在resterr,因此解雇了断言。它来自使用restClient.get()

调用的API处理程序

然而,我期待整个(其他)程序执行崩溃(在另一个断言上)或告诉我ReferenceError: restClient is not defined,但是分析日志并没有发生。因此,我认为问题出现在这里的片段中,而不是我正在调用的远程API(仍由我编码)。