为了使用节点在浏览器中显示文件的内容,我首先尝试了这个:
var express = require('express')
, fs = require('fs')
, app = express()
, port = process.env.PORT || 5000;
app.use(express.logger());
var data = fs.readFileSync('index.html');
app.get('/', function(req, res){
res.send(data);
});
app.listen(port, function(){
console.log('Listenting on ' + port);
});
然而,这并没有按预期工作。浏览器实际上提供了index.html
我首先必须下载的文件内容,然后在文本编辑器中手动打开它。然后,我尝试使用缓冲区做同样的事情:
var express = require('express')
, fs = require('fs')
, app = express()
, port = process.env.PORT || 5000;
app.use(express.logger());
var data = new Buffer(fs.readFileSync('index.html'));
app.get('/', function(req, res){
res.send(data.toString('utf-8'));
});
app.listen(port, function(){
console.log('Listenting on ' + port);
});
这按预期工作,内容index.html
显示在浏览器窗口内。但是,在我对 Node.js 的有限用户理解中。Buffer 类是用于处理二进制数据的全局类型。但是该index.html
文件不包含任何二进制数据。所以我的问题是:
- 在上面的代码中,为什么内容
index.html
是作为文件下载(无缓冲区)提供的,而不是直接显示在浏览器中(有缓冲区)? - 当文件只包含字符串数据,没有二进制文件时,为什么我需要使用缓冲区?
- 使用缓冲区的offer地点有哪些?
- 如果我想了解更多关于缓冲区的信息并在 Node.js 中使用。我要去哪?