刷新时未加载Node.js页面

时间:2017-07-19 13:12:36

标签: javascript node.js

我想创建一个简单的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);

1 个答案:

答案 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提供静态文件的五个示例,请参阅此答案,从使用高级框架到非常低级别的手动重新发明轮式实现。