2017-05-28 14 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'を本当に使いたいなら、quote:' 'const.headers.authToken" ' –

+0

の間で囲む必要があります。実際のコードではconstではありません。私は、別のバグを導入することを気付かないうちに、難読化するための質問に変更しました。私の悪い。私は質問を更新します。 – noctonura

答えて

0

const - は予約キーワードです。 必要に応じて別のものを選んでください。

UPDATE:

だから限り、我々はappconst、ないconstを使用しているとして - 別の問題があります:あなたは、ネストされたプロパティを割り当てるしてみてください。 2つの回避策があります。もう一つは、このようなネストされたプロパティを作成することです

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

let authTokenHeader = {}; 

をそしてあなたはプロパティに割り当てます。私は別の奇妙なを見たら

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

を第一に、あなたはこのようなオブジェクトリテラルを作成しますプロパティを定義する方法ですが、私たちのコードを読みやすくするためには、そのまま残しておきましょう。

+0

Lol dang。質問は私のために失敗する。実際にはコードではconstではありません。私は独自の名前を難読化するためにそれを変更しました。私はその問題を解決するでしょう。 – noctonura

+0

@RichAmberale私は自分の答えを更新しました。 – Lazyexpert

関連する問題