За да покажа съдържанието на файла в браузъра с помощта на node, първо опитах това:
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