Quiero codificar URL esto:
SELECT name FROM user WHERE uid = me()
¿Tengo que descargar un módulo para esto? Ya tengo el módulo de solicitud.
Quiero codificar URL esto:
SELECT name FROM user WHERE uid = me()
¿Tengo que descargar un módulo para esto? Ya tengo el módulo de solicitud.
Respuestas:
Puedes usar JavaScript encodeURIComponent
:
encodeURIComponent('select * from table where i()')
decodeURIComponent
es cómo decodifica el URI codificado. De nada.
El módulo incorporado querystring
es lo que estás buscando:
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 la escape
función de querystring
. Genera una cadena 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()
(en la respuesta de Nicolas) parece que ahora devuelve una cadena vacía.
querystring.escape()
método es usado por querystring.stringify()
y generalmente no se espera que se use directamente".
Tenga en cuenta que la codificación URI es buena para la parte de consulta, no es buena para el dominio. El dominio se codifica utilizando punycode. Necesita una biblioteca como URI.js para convertir entre un URI e IRI (Identificador Internacionalizado de Recursos).
Esto es correcto si planea usar la cadena más tarde como una cadena 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'
Si no desea que los caracteres ASCII les gusta /
, :
y ?
que se escaparon, utilice encodeURI
en su lugar:
> encodeURI("http://examplé.org/rosé?rosé=rosé")
'http://exampl%C3%A9.org/ros%C3%A9?ros%C3%A9=ros%C3%A9'
Sin embargo, para otros casos de uso, es posible que necesite uri-js en su lugar:
> 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) lo hará:
encodeURIComponent("Robert'); DROP TABLE Students;--")
//>> "Robert')%3B%20DROP%20TABLE%20Students%3B--"
Sin embargo, pasar SQL en una cadena de consulta podría no ser un buen plan,