我是编程新手,我正在学习node.js,但在做parsedUrl时,我得到了[object:null]和输出,以及如何修复它

我是编程新手,我正在学习node.js,但在做parsedUrl时,我得到了[object:null]和输出,以及如何修复它,node.js,programming-languages,Node.js,Programming Languages,我做下面的程序运行,为我的语法抱歉,我的第一语言不是英语,所以如果我不是描述性的请原谅我并问问题。 我的输出是 E:\Love>node punit.js 服务器正在侦听端口5000 在路径:fof上接收到请求,方法:get,查询字符串参数为[Object:null prototype]{fizz:'buzz'} 我的代码在下面 /* *API的主文件 * */ //依赖关系 var http=require('http'); var url=require('url'); //将服务器配置为

我做下面的程序运行,为我的语法抱歉,我的第一语言不是英语,所以如果我不是描述性的请原谅我并问问题。 我的输出是 E:\Love>node punit.js 服务器正在侦听端口5000 在路径:fof上接收到请求,方法:get,查询字符串参数为[Object:null prototype]{fizz:'buzz'} 我的代码在下面

/*
*API的主文件
*
*/
//依赖关系
var http=require('http');
var url=require('url');
//将服务器配置为使用字符串响应所有请求
var server=http.createServer(函数(req,res){
//解析url
var parsedUrl=url.parse(req.url,true);
//找到路
var path=parsedUrl.pathname;
var trimmedPath=path.replace(/^\/+\/+$/g',);
//将查询字符串作为对象获取
var queryStringObject=parsedUrl.query;
//获取HTTP方法
var method=req.method.toLowerCase();
//发送响应
res.end('Hello World!\n');
//记录请求/响应
log('在路径“+trimmedPath+”上收到的请求,方法为“+method+”,此查询字符串为“”,queryStringObject);
});
//启动服务器
监听(3000,函数(){
log('服务器已启动并正在运行');

});简短回答:

如果第二个参数是
true
此处
url.parse(req.url,true)
,则无法摆脱
[对象:null原型]
(看起来它是构建功能中节点的一部分,可能是一个提醒)

这是因为您正在将
url.parse
parseQueryString
参数设置为
true
。从文档中:

如果为true,查询属性将始终设置为
querystring
模块的
parse()
方法返回的对象

querystring.parse
docs

querystring.parse()方法返回的对象不典型地从JavaScript对象继承。这意味着典型的对象方法,如obj.toString()、obj.hasOwnProperty()和其他方法没有定义,也无法工作

所以在
console.log
上,它的前面总是有
[Object:null-prototype]
,例如
query:[Object:null-prototype]{q:'ok'}

我假设它(作为节点功能的一部分)提醒
query
对象的
prototype
null

例如,在以下方面可以观察到相同的行为:

const a = { b: 1 }
a.__proto__ = null; // <-- set prototype of a to null
console.log(a)
// outputs [Object: null prototype] { b: 1 }
const a={b:1}

a、 _uuuproto_uuu=null;//粘贴代码,而不是链接图像,请添加代码片段请看一看有什么错误,你得到的对象正确吗<代码>{fizz:'buzz'}
错误是[object:null prototype],这个{[object:null prototype]}不应该与导师告诉我的输出一起出现,我也有同样的问题。如果我做了
console.log(parsedUrl)
它会显示
parsedUrl.query:[Object:null prototype]{fizz:'buzz'}
但在视频中它只显示了
{fizz:'buzz'}
我们可以使用JSON.stringify(queryStringObject)来消除这个错误,还是会在我的系统中导致任何错误或bugcode@PunitPal,在这种情况下,您记录的是string not Objective,我只是想知道,上面提到的代码和输出是我从讲师那里复制的,他的输出在没有[output:null prototype]的情况下是完美的这怎么可能呢?你能给出一些逻辑或者你的建议吗?谢谢你的解释,非常感谢你的解释。如果我做控制台。log(parsedUrl)它显示parsedUrl.query:[对象:空原型]{fizz:'buzz'}但在视频中它只显示了{fizz:'buzz'}