尝试client.logon()时发生TypeError

时间:2020-01-24 13:21:27

标签: javascript node.js typeerror circuit-sdk

我目前正在使用Node.js编写小型Circuit Bot的第一步。

这是我到目前为止所得到的:

const Circuit = require('../node_modules/circuit-sdk/circuit.js'); //Circuit-Library importieren
var config = require('./config.json'); //Configs für Bot
console.log(config); // Configs ausgeben
var client = null;


client = new Circuit.Client({
  client_id: config.client_id,
  client_secret: config.client_secret
});
client.logon()
  .then(user => console.log('Logged on'))

但是由于抛出TypeError,客户端无法登录:

TypeError: XMLHttpRequest is not a constructor
    at /home/jovyan/node_modules/circuit-sdk/circuit.js:59768:37
    at new Promise (<anonymous>)
    at xhr (/home/jovyan/node_modules/circuit-sdk/circuit.js:59767:20)
    at /home/jovyan/node_modules/circuit-sdk/circuit.js:60283:17
    at new Promise (<anonymous>)
    at authenticateClientCredentials (/home/jovyan/node_modules/circuit-sdk/circuit.js:60282:20)
    at Object.circuit.Client._self.logon (/home/jovyan/node_modules/circuit-sdk/circuit.js:63899:24)
    at evalmachine.<anonymous>:5:8
    at Script.runInThisContext (vm.js:116:20)
    at Object.runInThisContext (vm.js:306:38)

我尝试了各种可能的身份验证参数组合,例如用对象声明它们,或尝试使用登录功能将其推入。

1 个答案:

答案 0 :(得分:0)

对于常规节点应用,Circuit SDK包含如下内容:

const Circuit = require('circuit-sdk');

这将加载Circuit Node SDK,该SDK实现了一些浏览器特定的API,例如XMLHttpRequest。

您唯一需要在节点应用程序中需要基于浏览器的常规Circuit JS SDK的情况是在电子渲染器进程中(它实质上是Chromium浏览器)。在这种特殊情况下,您将包括以下内容:

const Circuit = require('circuit-sdk/circuit.js');

将更新的node-sdk-example应用程序作为节点应用程序(机器人)的良好起点。 https://github.com/circuit/node-sdk-example