Node.js에서 URL을 인코딩하려면 어떻게 해야 하나요?
URL 인코딩:
SELECT name FROM user WHERE uid = me()
이를 위해 모듈을 다운로드해야 합니까?요청 모듈은 이미 가지고 있습니다.
JavaScript 를 사용할 수 있습니다.
encodeURIComponent('select * from table where i()')
부여
'select%20*%20from%20table%20where%20i()'
빌트인 모듈은 다음과 같습니다.
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("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을 쿼리 문자열로 전달하는 것은 좋은 계획이 아닐 수 있습니다.
인코딩
완전한 URL 인코딩에는 encodeURI() 메서드가 사용됩니다.이 메서드는 다음을 제외하고 특수 문자를 인코딩합니다.~!$&@#*()=:/,;?+
encodeURIC 컴포넌트
URI 컴포넌트에서 특수문자를 인코딩하려면 이 인코딩을 사용해야 합니다.URIComponent() 메서드.이 방법은 완전한 URL이 아닌 쿼리 문자열 파라미터 등의 URL 컴포넌트를 인코딩하는 데 적합합니다.
언급URL : https://stackoverflow.com/questions/6554039/how-do-i-url-encode-something-in-node-js
'programing' 카테고리의 다른 글
jdbc:mysql://localhost:3306/mysql에 적합한 드라이버를 찾을 수 없습니다. (0) | 2022.12.07 |
---|---|
jQuery에서 라디오 버튼을 확인하는 방법 (0) | 2022.12.07 |
Vuex - 계산에서 getter를 사용할 때 정의되지 않은 오류가 발생함 (0) | 2022.12.07 |
장고 모델 "명시적인 app_label을 선언하지 않음" (0) | 2022.11.26 |
java: String Builder를 사용하여 선두에 삽입 (0) | 2022.11.26 |