1.我不知道我代码哪里写错了,只要不注释掉res.writeHead()就会有错。 2.弱弱地问一句,我怎么把一个对象的某个属性返回去呀? 比如我写一个res.wirite(data.a)就说要转成字符串,但是用querystring.stringify却没有结果,然后试了一下JS里的toString(),却说没定义。 //服务器 var http = require(‘http’); var url = require(‘url’); var util = require(‘util’); var qs = require(‘querystring’); http.createServer(function(req,res){ var data = ‘’; req.on(‘data’,function(chunk){ data+=chunk; });
req.on('end',function(){
data = qs.parse(data);
});
res.writeHead(200, {
'Content-Length': data.length,
'Content-Type': 'text/plain' });
res.write('hello');
//res.write(data.a);
res.end("hello");
}).listen(3000); console.log("!!!");
//模拟一个POST请求 var http=require(‘http’); var qs=require(‘querystring’);
var post_data={a:123,time:new Date().getTime()}; var content=qs.stringify(post_data);
var options = { host: ‘localhost’, port: 3000, path: ‘/’, method: ‘POST’, headers:{ ‘Content-Type’:‘application/x-www-form-urlencoded’, ‘Content-Length’:content.length } }; console.log(“post options:\n”,options); console.log(“content:”,content); console.log("\n");
var req = http.request(options, function(res) { console.log("statusCode: ", res.statusCode); console.log(“headers: “, res.headers); var _data=’’; res.on(‘data’, function(chunk){ _data += chunk; }); res.on(‘end’, function(){ console.log(”\n—>>\nresult:”,_data) }); });
req.write(content); req.end();
你好,我也刚学,测试了下你的代码。 应该是用 var https=require(‘https’);就可以了。 代码就运行正常了。
var https=require(‘https’);运行
谢谢,为什么呀?
谢谢,为什么呀?
@ggaaooppeenngg 都要改么?
问题所在:
req.on('end',function(){
data = qs.parse(data);
});
res.writeHead(200, {
'Content-Length': data.length,
提示: 异步
果然! 原来data还没接受完我就写头了。 原来我还是没有真正理解什么叫异步呀。
var http=require(‘http’); var qs=require(‘querystring’); var post_data={a:123,time:new Date().getTime()};//这是需要提交的数据 var content=qs.stringify(post_data);
var options = { host: ‘localhost’, port: 3000, path: ‘/’, method: ‘POST’, headers:{ ‘Content-Type’:‘application/x-www-form-urlencoded’, ‘Content-Length’:content.length } }; console.log(“post options:\n”,options); console.log(“content:”,content); console.log("\n");
var req = http.request(options, function(res) { console.log("statusCode: ", res.statusCode); console.log(“headers: “, res.headers); var _data=’’; res.on(‘data’, function(chunk){ _data += chunk; console.log(_data); }); res.on(‘end’, function(){ //data = qs.parse(_data); console.log(‘end is emitted’); console.log(”\n—>>\nresult:”,_data) }); });
req.write(content); req.end();
//服务器 var http = require(‘http’); var url = require(‘url’); var util = require(‘util’); var qs = require(‘querystring’); http.createServer(function(req,res){ var data = ‘’; req.on(‘data’,function(chunk){ data+=chunk; });
req.on(‘end’,function(){ res.writeHead(200, { ‘Content-Length’: data.length, ‘Content-Type’: ‘text/plain’ }); data = qs.parse(data); console.log(data.a.toString()); res.write(data.a.toString()); res.end(‘hello’); //data = qs.parse(data); console.log(data); }); }).listen(3000); console.log("!!!");
在客户端 我的res.on(end)事件始终没有反应……这是为什么?
怎样标记呀? 我在前面加了很多空格也不行…………
<pre><code>这是一个代码区块。 </code></pre>
<pre><code>这样 怎么跟你们的不一样
@jiyinyiyong 我覺得回覆功能應該加個預覽XD
‘’‘ 这是代码 ’’’
这是代码
就像这样么? 好好玩呀~