2012-07-30 45 views
2

这里是我的代码:的NodeJS给我下载,而不是HTML响应

var express = require('express'), 
     app = express.createServer(express.logger()); 
app.use(express.bodyParser()); 
app.get('/', function(request, response) { 
    var name = request.param('name', null); 
    response.header('Content-Type', 'text/event-stream'); 
    var t = setInterval(function(){ 
     response.write('Hello World by '+name+' (using http-1.1 streaming data!)<br />'); 
    }, 2000); 
    /*request.socket.on('close', function() { 
     clearInterval(t); 
    }); */ 
}); 

var port = process.env.PORT || 5000; 
app.listen(port, function() { 
    //clearInterval(t); 

    console.log("Listening on " + port); 
}); 

,因为我在Heroku上测试这一点,我使用的引导有我使用快递。 因此,当我打开应用程序时,我得到一个下载弹出式窗口,其中包含文件中的数据(下载)而不是html(dom)响应。

我做错了什么? (它是一个浏览器的问题?)

编辑:
@Joe,解决了我最初的问题,但还没有,我有两个问题:
1)为什么我不需要插入一个“正确”内容类型? (流媒体?)
2)为什么只有在经过一段时间(大约半分钟)后才能输出此代码。

+1

这可能有助于解释什么是'文/事件stream'确实http://dsheiko.com/weblog/html5- and-server-sent-events/ – Joe 2012-07-31 00:31:15

回答

3

如果你想显示为HTML,你会希望你Content-Typetext/html

+0

但是,我将如何流式传输数据?在每间隔一圈? – funerr 2012-07-30 21:33:40

+0

&它工作,但它加载了很长时间(约22秒),直到它甚至显示了什么,为什么? – funerr 2012-07-30 21:40:59

+0

第一次需要22秒,然后每次看起来很快?它可能在启动时使用一些开发设置。我不太了解NodeJS。 – Joe 2012-07-31 00:32:35

相关问题