在nodejs中object的tostring()方法querystring的stringify()json.stringify()

啄木鸟伍迪      2022-02-13     306

关键词:

刚学nodejs,做到一个例子:发送简单的HTTP请求。遇到一个问题,客户端给服务端发送的消息到服务端,服务端收不到消息,确切的说是“”。

以下是服务端代码:server.js

const http = require("http");
const qs = require("querystring")

http.createServer(function(request,response){
    var body ="";
    request.on("data",function(chunk){
        body+=chunk;
    })
    request.on("end",function(){
        response.writeHead(200,{"ContentType":"text/html;charset=utf-8"});
        console.log(body)
        process.stdout.write("got name :"+ qs.parse(body)["name"]+"\n")
    })


}).listen(3000);

 以下是客户端代码:

var http = require("http");
var qs = require("querystring")


var options = {
    hostname: '127.0.0.1',
    port: 3000,
    path: '/',
    method: 'POST',
};


function getname(theName){
var b = {name:theName};
var a=qs.stringify(b)
console.log(typeof theName)
console.log("theName:"+theName+" ,b转换为string后的a:"+a);
http.request(options,function(response){
response.setEncoding('utf8');
var body ="";
response.on('data', function(chunk){
body+=chunk;
});
response.on('end',function (){
process.stdout.write("client compate!\n");
})
}).end(a);
}
//正确代码 process.stdin.on("data",function(inputData){ process.stdout.write("your name:"+inputData); console.log("输入内容: "+inputData+" 转换为string后:"+inputData.toString().replace("\r\n",""))//inputData 有回车 getname(inputData.toString().replace("\r\n","")); })

//错误代码
process.stdin.on("data",function(inputData){ process.stdout.write("your name:"+inputData); getname(inputData); })

服务端,在这里无需多说。我们看到客户端的错误代码:这里,没有对接收到的“用户输入数据”的inputData处理,所以这里的inputData是Object类型;

看到客户端反馈结果:

服务端的返回结果:

 

相继查看了b的类型:

相信这里已经知道了问题的根源:获得的参数是一个buffer类型的,导致后面解析出问题。那么在调用getname的时候把参数转换好就行了。这个逻辑应该可行。

但是在这里我就有一个疑问,这个接收到的输入的对象该怎么转换呢?

querystring:其中nodejs中有一个模块,querystring,作用是对URL的查询字符串进行解析;有stringify() 和parse()两个方法,一个是转字符串,一个是解析为对象;

JSON处理JSON字符串的;JSON.stringify()可以解析为string;

toString()方法:都可以解析为string

这里我们采用的是inputData.toString().这里只是传递参数,也不是跟URL相关,自然用这个。好了问题解决!

 

NodeJS 异步 JSON 解析导致 Buffer.toString() 失败

】NodeJS异步JSON解析导致Buffer.toString()失败【英文标题】:NodeJSAsyncJSONparsingcausingBuffer.toString()failure【发布时间】:2017-09-1511:54:24【问题描述】:我正在尝试在NodeJS中解析一个相当大的JSON文件(~500Mb)。我的实现基于thisanswer中给... 查看详情

javascript中valueof与tostring区别

疑问:  在JS的数据类型中有两个方法 Object.prototype.valueOf和 Object.prototype.toString,在实例到这两个的区别是什么? 我们进行如下的实例步骤:案例1.vartest={age:20,toString:function(){returnthis.age-10;},//重写toString()valueOf:func 查看详情

object,equals,tostring

一、Object类   说明:Object类是Java中所有的类的直接或者间接的父类(基类)。       该类中定义的是所有的类中的都有的的功能。   位置:可以从API中查找。 二、Object类之equals方法   表象... 查看详情

object类

...间接的继承自Object类 在C#中,结构体也继承自Object类 Tostring:当打印一个对象的时候,会默认调用Tostring方法(方法的内部实现) Equals:通过一个自定义的比较规则来判断两个对象是否相同: boolr=xiaoming.Equals(xiaoli);//返... 查看详情

nodejs中怎么判断一个对象类型

...ion isObject(obj)    return Object.prototype.toString.call(obj) === '[object O 查看详情

object的tostring方法返回

...Auto-generatedmethodstubObjectobj=newObject();obj=100;System.out.print(obj.toString());这个方法展现的结果是100,但是按照逻辑来说不是应该大多数人所说的类名@哈希码么,test1中没有重写任何toString方法,他的父类就是Object你的100自动装箱成Integer... 查看详情

在java中string的方法:tostring()怎么用?

toString();就是把其他的数据类型转换成String类型,比如:inti=0;Stringb=i.toString();这个还有另一种转换法Stringb=(String)i;嗯。就是这样使用的,兄弟参考技术ATostring()是将现有的数据类型转换成为String类型比如:ints_int=10;Strings_String=s_int.... 查看详情

object.prototype.tostring判断类型的原理(代码片段)

项目中,我们经常会直接使用Object.prototype.toString用来做类型判断。他基本是几种方法里可以开箱即用、且判断类型最完善了。现在我们来扒皮一下他。具体原理在toString方法被调用时,会执行以下几个操作步骤~获取this指向的那... 查看详情

在原生不支持的旧环境中添加兼容的object.keys

1if(!Object.keys){2Object.keys=(function(){3varhasOwnProperty=Object.prototype.hasOwnProperty,//原型上的方法,只取自身有的属性;4hasDontEnumBug=!({toString:null}).propertyIsEnumerable(‘toString‘),//ie6一下,!之后的内容为false 查看详情

如何在 Java 中使用 toString 方法?

】如何在Java中使用toString方法?【英文标题】:HowtousethetoStringmethodinJava?【发布时间】:2011-04-0615:43:05【问题描述】:谁能向我解释在Object类中定义的toString()方法的概念?它是如何使用的,它的用途是什么?【问题讨论】:***.co... 查看详情

object1.toString() == object2.toString() [重复]

】object1.toString()==object2.toString()[重复]【英文标题】:object1.toString()==object2.toString()[duplicate]【发布时间】:2015-01-2623:05:03【问题描述】:以下是我比较两个对象引用的主要方法。重写了Car类中的toString()方法后,我的问题是为什么... 查看详情

如何在 Java 中使用 toString 方法?

】如何在Java中使用toString方法?【英文标题】:HowtousethetoStringmethodinJava?【发布时间】:2011-04-0615:43:05【问题描述】:谁能向我解释toString()方法的概念,在Object类中定义?它是如何使用的,它的用途是什么?【问题讨论】:***.co... 查看详情

java中object和objects类tostring方法和equals方法介绍(代码片段)

Object类:Object类位于java.lang包中,lang包下的类无需导包就可以使用,object是Java语言中的根类,即所有类的父类。Object中描述的所有方法其子类都可以使用。在对象实例化的时候,最终找的父类就是Object。如果... 查看详情

java中的tostring()是啥方法?

参考技术AtoStringpublicStringtoString()返回该对象的字符串表示。通常,toString方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂。建议所有子类都重写此方法。Object类的toString方法返回一个字符串,... 查看详情

在数组 mongoose 中插入元素在 NodeJS 中创建 Object

】在数组mongoose中插入元素在NodeJS中创建Object【英文标题】:InsertingelementsinarraymongoosecreatesObjectinNodeJS【发布时间】:2015-06-0517:25:49【问题描述】:我正在尝试使用Mongoose在数组中插入文档。这是架构:varuser=newmongo.Schema(_id:Number,d... 查看详情

object类的方法,tostring的重写.

...位于java.lang包中数组也是Object类的子类Object类的常用方法toString();equals();hashCode();任何类的对象,都可以调用Object类中的方法,包括数组对象。系统默认存在继承Object类。例如publicclassExample{publicvoidf(Objectobj){}}publicc 查看详情

java之tostring方法

...个共同的父类Object(默认继承,不用加extends关键字),toString方法就是Object类的一个方法,用来返回该对象的字符串表示形式(个人总结:需要把该类转换成String类型的时候就会调用该方法)  父类Object中的toString()方法  ... 查看详情

javascript中tostirng()与object.prototype.tostring.call()方法浅谈

toStirng()与Object.prototype.toString.call()方法浅谈一、toString()是一个怎样的方法?它是能将某一个值转化为字符串的方法。然而它是如何将一个值从一种类型转化为字符串类型的呢?通过下面几个例子,我们便能获得答案:1.将boolean... 查看详情