Чтобы отобразить содержимое файла в браузере с помощью узла, я сначала попробовал это:
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. Класс буфера — это глобальный тип для работы с двоичными данными. Однако файл index.html
не содержал двоичных данных. поэтому мои вопросы:
- Почему в приведенном выше коде содержимое
index.html
предлагалось как загрузка файла (без буфера), а не отображалось непосредственно в браузере (с буфером)? - Зачем мне использовать буфер, когда файл содержит только строковые данные, а не двоичные?
- Каковы места предложения, где используются буферы?
- Если я хочу узнать больше о буферах и их использовании в Node. куда я иду?
Content-Type
, чтобы файл правильно отображался в браузере. - person Hubert OG   schedule 14.07.2013