Http 在Node.js中编码客户端请求参数

Http 在Node.js中编码客户端请求参数,http,encoding,node.js,Http,Encoding,Node.js,我需要Node.js中的方法/实现,该方法/实现获取散列或数组,并将其转换为HTML请求参数,就像 *我无法从jQuery中使用它,因为它依赖于浏览器本机实现。我不知道这样的本机函数或模块,但您可以使用此函数或模块: //能够使用转义的查询字符串 var query=require('querystring'); 函数toURL(对象,前缀) { var结果=“”, 键=“”, 后缀='&'; for(对象中的变量i) { //如果前缀不象[一]。。。 如果(!前缀) { key=query.e

需要Node.js中的方法/实现,该方法/实现获取散列或数组,并将其转换为HTML请求参数,就像


*我无法从jQuery中使用它,因为它依赖于浏览器本机实现。

我不知道这样的本机函数或模块,但您可以使用此函数或模块:

//能够使用转义的查询字符串
var query=require('querystring');
函数toURL(对象,前缀)
{
var结果=“”,
键=“”,
后缀='&';
for(对象中的变量i)
{
//如果前缀不象[一]。。。
如果(!前缀)
{
key=query.escape(i);
}
其他的
{
key=prefix+'['+query.escape(i)+']';
}
//字符串按原样传递。。。
if(typeof(object[i])=='string')
{
result+=key+'='+query.escape(object[i])+postfix;
继续;
}
//objectects和数组传递depper
if(typeof(object[i])==“object”| | typeof(object[i])==“array”)
{
结果+=toURL(对象[i],键)+后缀;
继续;
}
//其他已通过的字符串化
if(对象[i].toString)
{
result+=key+'='+query.escape(object[i].toString())+postfix;
继续;
}
}
//删除尾随分隔符(&)是的,这是一种很难的方式,但是
//获取objectect的长度时出错;
result=result.substr(0,result.length-1);
返回结果;
}
//试一试
var x={foo:{a:{xxx:9000},b:2},[ba]z':'bob&jhonny'};
控制台日志(toURL(x));
//foo[a]=1&foo[b]=2&baz=bob%26jhonny

在您写的地方有一个错误:
typeof(object[i])=='objectect'
,应该是
'object'
,这样做递归,请注意这个例子失败了:
var x={foo:{a:{xxx:9000},b:2},baz:'bob&jhonny'}due double Encoding Bugs fixed:)最后一个特性是数组键是用数字传递的:b[1]=1,而不是b[]=1以避免出现问题!甚至可以用数字解析:)
{foo:{a:{xxx:9000,c:{omg:'zombies'},b:2},'baz':'bob&jhonny'}虽然
qs.stringify
在数字上失败,但我建议您将代码作为路径提交
var myObject = {
  a: {
    one: 1, 
    two: 2, 
    three: 3
  }, 
  b: [1,2,3]
}; // => "a[one]=1&a[two]=2&a[three]=3&b[]=1&b[]=2&b[]=3"