如何在Node.js中URl编码?

2020/10/03 01:41 · javascript ·  · 0评论

我想对此进行网址编码:

SELECT name FROM user WHERE uid = me() 

我需要为此下载一个模块吗?我已经有了请求模块。

您可以使用JavaScript的encodeURIComponent

encodeURIComponent('select * from table where i()')

内置模块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'

请注意,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可能不是一个好的计划,

看到这个

本文地址:http://javascript.askforanswer.com/ruhezainode-jszhongurlbianma.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!