2017-05-28 109 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

相關問題