2017-05-28 107 views
1

我的场景是我正在尝试将标题添加到节点请求对象。但是我只是想创建标题数组。创建对象时为什么会出现意外的令牌错误?

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很陌生。

+4

您不应该使用'const'作为变量名称。 –

+0

如果你真的想使用'const.headers.authToken'作为你的对象的键名,你需要将它包装在''const.headers.authToken“' –

+0

对不起。它在实际代码中不是常量。我只是改变了它的问题来混淆没有意识到引入另一个错误。我的错。我会更新这个问题。 – noctonura

回答

0

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

UPDATE:

所以只要我们使用appconst,不const - 还有另外一个问题:你尝试分配嵌套的属性。 有两种解决方法。首先,创建对象的文字是这样的:

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

另一种是将这样创建嵌套属性:

let authTokenHeader = {}; 

然后分配属性:有一次,我看到了另一个奇怪的

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

定义属性的方式,但只要我们都希望我们的代码可读 - 让我们保持原样。

+0

洛尔当。我的问题失败了。它实际上不是代码中的常量。我改变了它的问题来混淆专有名称。我会解决这个问题。 – noctonura

+0

@RichAmberale我已经更新了我的答案。 – Lazyexpert

相关问题