我想创建一个简单的Node.js服务器并使用pipe()方法发送数据。但我有一个问题。
第一次启动服务器时会加载页面,但是当我刷新页面时,它会变为空白。我的意思是没有加载数据。为什么会这样?
var http = require('http'),
fs = require('fs');
var myReadStream = fs.createReadStream(__dirname + '/input.txt', 'utf8');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
myReadStream.pipe(res);
}).listen(3300);
答案 0 :(得分:2)
如果您将其更改为:
,这将有效http.createServer(function (req, res) {
var myReadStream = fs.createReadStream(__dirname + '/input.txt', 'utf8');
res.writeHead(200, {'Content-Type': 'text/plain'});
myReadStream.pipe(res);
}).listen(3300);
那是因为一旦读取的流不会自动重绕(实际上它不能)。
但这并不是提供静态内容的最灵活方式。
有关使用和不使用Express提供静态文件的五个示例,请参阅此答案,从使用高级框架到非常低级别的手动重新发明轮式实现。