2017-01-24 3 views
0

ノードアプリケーションを高速で実行していますが、着信リクエストのボディプロパティでアポストロフィをエスケープしたいのですが、これが最善の方法ですそれをやる。JavaScript内の... inループの新しいオブジェクトプロパティ値を動的に保存します

私は、すべてのリクエストボディのプロパティを反復処理するfor(prop in req.body)ループを使用することができます知っているが、どのように私は、各プロパティに値を動的に再割り当てすることができますか?例えば

Iは

for(prop in req.body) { 
    prop.split("'").join("\\'"); 
} 

以降req.body.title(またはプロパティ)の参照を行う場合、その値は変化しません。同様に、req.body.prop = prop.split("'").join("\\'");req.body.propが各繰り返しで動的に変更されることを望む)のように割り当てようとすると、propプロパティがreq.bodyオブジェクトに追加されます。これらのプロパティを動的に反復して再割り当てするにはどうすればよいですか?

+0

[ブラケット表記法を試してみてください](https://stackoverflow.com/ 695050/javascript-object-a-variable-as-the-nameという名前の-htt-do-add-a-property-of-a-req.body [prop] = req.body [prop ] .split( "'")。join( "\\'"); ' –

+0

なぜあなたはそれらをエスケープする必要がありますか?通常、あなたはこれが必要です。そのような場合には、通常はエスケープする必要のあるサービスと通信するlibsがそれを行うためのより良い方法を提供します。 –

+0

@ t.niese何をお勧めしますか?私がオンラインで見たほとんどの場所は、私がやったようなものでそれらを取り除くことを提案するだけです。 – James

答えて

2

私が正しくあなたの要件を理解していれば、あなただけのブラケット表記を使用するようにループを変更する必要があります。

for(var prop in req.body) { 
    if (req.body.hasOwnProperty(prop)) 
     req.body[prop] = req.body[prop].split("'").join("\\'"); 
} 

JSFiddle:https://jsfiddle.net/wsahkozt/1/

+1

hasOwnPropertyチェックを追加するのはどうですか? – Kunal

+0

私はそれが質問に指定されていなくても、追加するのに十分な常識だと思います。私は私の答えを更新します。 –

+0

ここで角括弧表記を使用できるかどうかはわかりませんでした。ありがとう! – James

関連する問題