Je veux encoder cette URL:
SELECT name FROM user WHERE uid = me()
Dois-je télécharger un module pour cela? J'ai déjà le module de demande.
Je veux encoder cette URL:
SELECT name FROM user WHERE uid = me()
Dois-je télécharger un module pour cela? J'ai déjà le module de demande.
Réponses:
Vous pouvez utiliser JavaScript encodeURIComponent
:
encodeURIComponent('select * from table where i()')
decodeURIComponent
c'est ainsi que vous décodez l'URI codé. De rien.
Le module intégré querystring
est ce que vous recherchez:
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()'
Utilisez la escape
fonction de querystring
. Il génère une chaîne sécurisée 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()
(dans la réponse de Nicolas) semble renvoyer une chaîne vide maintenant.
querystring.escape()
méthode est utilisée par querystring.stringify()
et ne devrait généralement pas être utilisée directement."
Notez que le codage URI est bon pour la partie requête, ce n'est pas bon pour le domaine. Le domaine est codé à l'aide de punycode. Vous avez besoin d'une bibliothèque comme URI.js pour convertir entre un URI et IRI (Internationalized Resource Identifier).
Ceci est correct si vous prévoyez d'utiliser la chaîne ultérieurement comme chaîne de requête:
> encodeURIComponent("http://examplé.org/rosé?rosé=rosé")
'http%3A%2F%2Fexampl%C3%A9.org%2Fros%C3%A9%3Fros%C3%A9%3Dros%C3%A9'
Si vous ne voulez pas de caractères ASCII aiment /
, :
et ?
à être échappés, utilisez à la encodeURI
place:
> encodeURI("http://examplé.org/rosé?rosé=rosé")
'http://exampl%C3%A9.org/ros%C3%A9?ros%C3%A9=ros%C3%A9'
Cependant, pour d'autres cas d'utilisation, vous pourriez avoir besoin d' uri-js à la place:
> 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) le fera:
encodeURIComponent("Robert'); DROP TABLE Students;--")
//>> "Robert')%3B%20DROP%20TABLE%20Students%3B--"
Passer SQL dans une chaîne de requête n'est peut-être pas un bon plan,