html5 eventSource 与node express 的问题

我想用html5的EventSource做一个access实时日志,代码如下:

app.get('/access', function(req, res) {
        var access_file = fs.readFile('./access.log',{"enconding":"utf-8"}, function(err, data) {
            if(err) {
                console.log(err);
                return false;
            }
            var str = new Buffer(data);
            var str_array = str.toString().split("::");
            res.set({'Content-Type':"text/event-stream",'Cache-Control':'no-cache'});
            res.render('admin/access_page', {
                "user":req.session.user,
                "result": str_array 
            });
        });

});

改了Content-Type 以后就不能输出html了,如何才能得到想要的东西

阅读 3.6k
1 个回答

虽然是去年的问题,但还是回答下。
题主所述的 html 其实本质上也是字符串而已,而所谓的不能输出 html 是不存在的,只需按照 SSE 的指定格式传输 html 字符串即可:

//SSE传输数据的固定格式:“data:”+要传输的数据+"\n\n"
res.write("data:"+"这里填写html字符串"+"\n\n");
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题