[新手]在一个简单的hello遇到的Buffer和data事件的问题
发布于 8个月前 作者 gvforjob 306 次浏览

我用浏览器访问一次 http://127.0.0.1 ,为什么会打印出两次一样的内容?’data’是被触发了两次么? 还有,不太清楚读取的buffer前3个字节是什么,后面才是html的数据,但没了这三个字节浏览器会显示乱码

打印: D:\nodejs\test>node test.js server start < Buffer ef bb bf 3c 68 31 3e 68 68 68 68 20 e6 88 91 3c 2f 68 31 3e > 20 < Buffer ef bb bf 3c 68 31 3e 68 68 68 68 20 e6 88 91 3c 2f 68 31 3e > 20

hello.html内容: < h1>hhhh 我< /h1>

代码: var http = require(‘http’); var fs = require(‘fs’);

http.createServer(function (req, res) { var rStream = fs.createReadStream(‘./hello.html’); var datas = []; rStream.on('data’, function (data) { console.log(data); console.log(data.length); datas.push(data); }); rStream.on('end’, function () { var buf = Buffer.concat(datas); res.writeHead(200, {’Content-Type’: 'text/html’}); res.end(buf); }); }).listen(80); console.log(‘server start’);

1 回复

在 function(req,res)后添加了一行打印 console.log(‘new req’)发觉是发了两次请求……汗,奇怪了

回到顶部