node.js - 我不明白这个类型错误

标签 node.js dom-events nodes intel-xdk intel-galileo

var Subscription = require('./Subscription');
var api = require('./api');

exports = module.exports = {};
var bridgeData;

function validateAccount(account) {
  if (!account) throw new Error('Muzzley account details must be present!');
  if (!account.appToken) throw new Error('appToken is not defined!');
  if (!account.profileId) throw new Error('profileId is not defined!');
  if (!account.serialNumber) throw new Error('serialNumber is not defined!');
}

function validateComponents(components) {
  if (!components || components.length === 0) throw new Error('Bridge components must be defined!');

  for (var i = 0; i != components.length; ++i) {
    if(!components[i].id) throw new Error('Missing component id!');
    if (!components[i].type) throw new Error('Missing component type!');
    if (!components[i].label) throw new Error('Missing component label!');
  }
}

exports.connect = function (account, components, callback) {

  validateAccount(account);
  validateComponents(components);

  bridgeData.appToken = account.appToken;
  bridgeData.profileId = account.profileId;

  api.registerBridge(account, function (err, bridge) {
    if (err) return callback(err);

    bridgeData.deviceKey = bridge.deviceKey;

    api.updateBridge(bridge, components, function (err) {
      if (err) return callback(err);

      var subscription = new Subscription(account.profileId, account.appToken);
      subscription.load(function (err) {
        return callback(err, subscription);
      });
    });
  });
};

exports.updateComponents = function (components, callback) {
  api.updateBridge(bridgeData, components, function (err) {
    return callback(err);
  });
};

有一个名为未定义的错误:

ERROR: /home/root/.node_app_slot/node_modules/muzzley-bridge-node/lib/index.js:29                                                                                     
ERROR:   bridgeData.appToken = account.appToken;                                                                                                                      
ERROR:                       ^                                                                                                                                        
ERROR: TypeError: Cannot set property 'appToken' of undefined

最佳答案

您在代码中声明的bridgeData 是错误的。

只需更改以下行:

var bridgeData;

致:

var bridgeData = {};

当您执行以下操作时:varbridgeData;您的变量未定义,并且您无法将新属性分配给 undefined variable 。

关于node.js - 我不明白这个类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33863761/

相关文章:

javascript - 使用 createEvent 选择另一个元素后面的文本

haskell - Haskell 中的 Node 是什么?

node.js - 尝试从 Node 查询 documentDB 时请求 url 无效

node.js - Apollo 服务器2 + Auth0

javascript - 类型错误 : Cannot set property 'user' of undefined at

node.js - nodejs(express)是否可以有不区分大小写的查询字符串?

javascript - mousemove 事件是否每帧触发一次?

javascript - 按F5(刷新)后如何运行函数?

java - 在两个不同的二叉搜索树之间查找具有键的公共(public)节点

java - 为什么我的链表赋值的 printList() 方法会出现无限循环?