これをURLエンコードします。
SELECT name FROM user WHERE uid = me()
このためにモジュールをダウンロードする必要がありますか?私はすでにリクエストモジュールを持っています。
JavaScript encodeURIComponent
を使うことができます。
encodeURIComponent('select * from table where i()')
組み込みモジュール querystring
はあなたが探しているものです:
var querystring = require("querystring");
var result = querystring.stringify({query: "SELECT name FROM user WHERE uid = me()"});
console.log(result);
#prints 'query=SELECT%20name%20FROM%20user%20WHERE%20uid%20%3D%20me()'
escape
のquerystring
関数を使用してください。 URLセーフな文字列を生成します。
var escaped_str = require('querystring').escape('Photo on 30-11-12 at 8.09 AM #2.jpg');
console.log(escaped_str);
// prints 'Photo%20on%2030-11-12%20at%208.09%20AM%20%232.jpg'
URIエンコーディングはクエリ部分には適していますが、ドメインには適していません。ドメインはpunycodeを使ってエンコードされます。 URIとIRI(Internationalized Resource Identifier)間の変換を行うには、 URI.js のようなライブラリが必要です。
後でクエリ文字列として文字列を使用する予定がある場合、これは正しいです。
> encodeURIComponent("http://examplé.org/rosé?rosé=rosé")
'http%3A%2F%2Fexampl%C3%A9.org%2Fros%C3%A9%3Fros%C3%A9%3Dros%C3%A9'
/
、:
および?
のようなASCII文字をエスケープしたくない場合は、代わりに encodeURI
を使用してください。
> encodeURI("http://examplé.org/rosé?rosé=rosé")
'http://exampl%C3%A9.org/ros%C3%A9?ros%C3%A9=ros%C3%A9'
ただし、他のユースケースでは、代わりに uri-js が必要になる場合があります。
> var URI = require("uri-js");
undefined
> URI.serialize(URI.parse("http://examplé.org/rosé?rosé=rosé"))
'http://xn--exampl-gva.org/ros%C3%A9?ros%C3%A9=ros%C3%A9'
encodeURIComponent(string)が行います。
encodeURIComponent("Robert'); DROP TABLE Students;--")
//>> "Robert')%3B%20DROP%20TABLE%20Students%3B--"
クエリ文字列の中でSQLを渡すのは良い計画ではないかもしれませんが、