创建对象时为什么会出现意外的令牌错误?

时间:2017-05-28 15:11:05

标签: javascript arrays node.js node-request

我的方案是我正在尝试将标头添加到节点请求对象。但我只是在创建头部数组。

let headers = [];
let options = {
  url: this.baseUrl + appconst.route.postMessage
};

if (token) {
  console.log(appconst.headers.authToken); // no problem here
  let authTokenHeader = { appconst.headers.authToken: token.toBase64() }; // throws
  headers.push(authTokenHeader);
}

if (msg) {
  headers.push({ 'content-type': 'application/json' });
  options.body = JSON.stringify(msg);
}

'投掷'线正在给......

  let authTokenHeader = { appconst.headers.authToken: token.toBase64() };
                                  ^
  SyntaxError: Unexpected token .

你能帮我理解这里发生了什么吗?我很困惑因为定义了“const.headers.authToken”并且它上面的行正常工作。是的,我是JavaScript的新手。

1 个答案:

答案 0 :(得分:0)

const - 是保留关键字。 只需根据您的需要选择另一个。

<强>更新

因此,就我们使用appconst而非const而言,还有另一个问题:您尝试分配嵌套属性。 有两种解决方法。首先,您可以像这样创建对象文字:

let authTokenHeader = { 
  appconst: {
    headers: {
      authToken: token.toBase64() 
    }
  }
};

另一个是创建这样的嵌套属性:

let authTokenHeader = {};

然后你分配属性:

authTokenHeader.appconst = {
  headers: {
    authToken: token.toBase64() 
  }
};

一旦我看到另一种定义属性的奇怪方法,但是就我们都希望我们的代码可读而言 - 让我们保持原样。