ノードを使用してブラウザでファイルの内容を表示するために、最初にこれを試しました:
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
ブラウザは、最初にダウンロードしてテキストエディタで手動で開く必要があるファイルとして実際にコンテンツを提供しました。次に、 buffer を使用して同じことを試みました。
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.js で使用します。どこに行けばいいですか?