Quero URL codificar isso:
SELECT name FROM user WHERE uid = me()
Tenho que baixar um módulo para isso? Eu já tenho o módulo de solicitação.
Quero URL codificar isso:
SELECT name FROM user WHERE uid = me()
Tenho que baixar um módulo para isso? Eu já tenho o módulo de solicitação.
Respostas:
Você pode usar JavaScript encodeURIComponent
:
encodeURIComponent('select * from table where i()')
decodeURIComponent
é como você decodifica o URI codificado. De nada.
O módulo embutido querystring
é o que você está procurando:
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()'
Use a escape
função de querystring
. Ele gera uma string segura de 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'
querystring.stringify()
(na resposta de Nicolas) parecem retornar uma string vazia agora.
querystring.escape()
método é usado querystring.stringify()
e geralmente não se espera que seja usado diretamente."
Observe que a codificação URI é boa para a parte da consulta, não é boa para o domínio. O domínio é codificado usando o punycode. Você precisa de uma biblioteca como o URI.js para converter entre um URI e um IRI (Internationalized Resource Identifier).
Isso está correto se você planeja usar a sequência posteriormente como uma sequência de consulta:
> encodeURIComponent("http://examplé.org/rosé?rosé=rosé")
'http%3A%2F%2Fexampl%C3%A9.org%2Fros%C3%A9%3Fros%C3%A9%3Dros%C3%A9'
Se você não deseja caracteres ASCII como /
, :
e ?
deve ser escapado, use encodeURI
:
> encodeURI("http://examplé.org/rosé?rosé=rosé")
'http://exampl%C3%A9.org/ros%C3%A9?ros%C3%A9=ros%C3%A9'
No entanto, para outros casos de uso, você pode precisar de 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) fará isso:
encodeURIComponent("Robert'); DROP TABLE Students;--")
//>> "Robert')%3B%20DROP%20TABLE%20Students%3B--"
Passar o SQL por uma sequência de consultas pode não ser um bom plano,