关键词:
刚学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... 查看详情