2017-11-01 12 views
1

Express、Angular JS、Google App-Engine DatastoreでNodeJSにWebアプリケーションを構築しています。NodeJSエクスプレスで表示用HTMLエンティティをエスケープする方法

私はNodeを学習しています。私は、データベースに挿入する前にユーザー入力を「サニタイズ」(エスケープ)するフォームを作成しました。

//Trim and escape all inputs 
req.sanitize('requester').escape(); 
req.sanitize('requester').trim(); 
req.sanitize('dataowner').escape(); 
req.sanitize('dataowner').trim(); 
req.sanitize('requested_filepath_list').escape(); 
req.sanitize('requested_filepath_list').trim(); 

「requested_filepath_list」は、UNIXのファイルパスのリストです:私はこのコードを作成するために、MDNのWebサイトでNodeJSチュートリアルを行いました。

ユーザーがリクエストを送信すると、そのリクエストは「エスケープ」形式でデータベースに格納されます。

//Escaped data 
/top/example/test123.txt 

質問:表示用にデータを「エスケープ解除」するにはどうすればよいですか?

//Desired output 
/top/example/test123.txt 

それだけで同じ出力を返し、私はエスケープ解除機能を試してみましたが、動作するようには思えません。

let escape_str = '/top/example/test123.txt'; 
let unescaped_str = unescape(escape_str); 
console.log('unescaped_str: ' + unescaped_str); 

//Output 
unescaped_str: /top/example/test123.txt 

//Desired output 
/top/example/test123.txt 
+1

ストアが最初の場所でエスケープなぜ..ストアだけで、通常のテキストとして。 – Keith

+0

興味深いですが、セキュリティ上の理由からエスケープして保存する方が良いと思いました。 – pengz

答えて

1

あなたはこれを試すことができます:)

const querystring = require('querystring'); 
querystring.unescape(escape_str); 
+0

私はquerystringモジュールをインストールし、それらのステップを試しましたが、文字列は変更されません... const querystring = require( 'querystring'); let escape_str = '/トップ/例/ test123.txt'; let unescaped_str = querystring.unescape(escape_str); console.log( 'unescaped_str' + unescaped_str);出力/先頭/例/ test123.txt – pengz

+0

おそらくこれはノードバージョン9.0でのみ機能します。私はノード8.4.0です。 https://nodejs.org/api/querystring.html#querystring_querystring_unescape_str – pengz

0

を私は、この要件を達成するために「彼はライブラリを使用することができました。

は、ここで詳細をポストです:What's the right way to decode a string that has special HTML entities in it?

がここライブラリです。私はnpm installを使ってインストールすることができました。

https://www.npmjs.com/package/he

例ソリューション:?データベース内の

const he = require('he'); 

let escape_str = '/top/example/test123.txt'; 

let unescaped_str = he.decode(escape_str); 

console.log('unescaped_str ' + unescaped_str); 
関連する問題