为了账号安全,请及时绑定邮箱和手机立即绑定

req.write之后会再次自动提交请求?

var req=http.request(options,function(res){    //拿到返回值
	
     res.on('end',function(){
		console.log('finish')
	})

	res.on('data',function(chunk){
		console.log(Buffer.isBuffer(chunk))
		console.log(typeof chunk)
	})

	console.log('status'+res.statusCode)
	console.log('headers'+JSON.stringify(res.headers))  //打印headers
	
	res.on('error',function(e){
		console.log('error:'+e.message)
	})
})
    req.write(postData)  //将数据写入请求体
	req.end()

我交换了下request返回函数里的代码,发现状态码和header总是先被打印出来,这合乎情理,毕竟data和end事件并未发生。但是,req.write()是写在其后的,那么请求执行顺序究竟是怎样的?我的理解是:

这是post方法自带的策略,即(老师也说过类似的话)存在某个判断,比如headers里的'Content-Length',如果与真实写入的postdata不相符,就不发送请求。

事实上将req.write(postData) 这句话删掉,你将看不到任何输出及终止,类似一直在等待请求发出一样。

那么究竟是不是这样呢?求大神回答!

正在回答

3 回答

发送请求应该是http.request完成的,毕竟options里面发送的服务器地址这些都有了!

0 回复 有任何疑惑可以回复我~

这个req.write()是将你的数据写入到请求题中,打个比方,你到邮局寄信,首先你的在你的信上写字。。这个write就是这个功能!

0 回复 有任何疑惑可以回复我~

我个人认为req.write(postData) 这句话执行完毕才是真正的请求,前面的只是个构造函数

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
进击Node.js基础(一)
  • 参与学习       219394    人
  • 解答问题       896    个

本视频教程带你揭开Node.js的面纱,带你走进一个全新世界

进入课程

req.write之后会再次自动提交请求?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信