Я хочу, чтобы URL закодировал это:
SELECT name FROM user WHERE uid = me()
Должен ли я скачать модуль для этого? У меня уже есть модуль запроса.
Я хочу, чтобы URL закодировал это:
SELECT name FROM user WHERE uid = me()
Должен ли я скачать модуль для этого? У меня уже есть модуль запроса.
Ответы:
Вы можете использовать JavaScript encodeURIComponent
:
encodeURIComponent('select * from table where i()')
decodeURIComponent
это то, как вы декодируете закодированный URI. Пожалуйста.
Встроенный модуль 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'
querystring.stringify()
(в ответе Николаса), кажется, теперь возвращает пустую строку.
querystring.escape()
Метод используется querystring.stringify()
и, как правило, не ожидается, что он будет использоваться напрямую».
Обратите внимание, что кодировка URI хороша для части запроса, но не для домена. Домен кодируется с использованием punycode. Вам нужна библиотека типа URI.js для преобразования между URI и IRI (интернационализированный идентификатор ресурса).
Это правильно, если вы планируете использовать строку позже как строку запроса:
> 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 в строке запроса может быть плохим планом,