我在nodejs中使用express和mysql-native。使用mysql-native我的流来自db这样的行(在咖啡中):
exports.getUser = (username,callback) ->
query = mysql.query "select * from users where username = #{username}"
query.on "row", (row)->
callback row
(显然我会用预备语句这是一个例子)
这种方法不适用于res.render,因为每次获得新行时都无法多次调用res.render
database.getUser "username", (result)->
res.render "people", "data" : result
是否有其他方法可以发送流式数据,还是我必须使用套接字将结果传输到视图?
答案 0 :(得分:0)
您可以直接使用首选的模板引擎
var row = _.template('<tr><td> <%= id > </td> </tr>');
...
database.getUser "username", (result)->
res.write( row(result) );
答案 1 :(得分:0)
您可能想要使用Express partials。
答案 2 :(得分:0)
我昨晚在一个灵感的时刻想出来,因为我正在流式传输数据,当流结束并运行我的回调时我可以听。这样我就可以将数据推送到数组,然后在回调中使用,如下所示:
query = mysql.query "select * from users where id = 2"
data = []
query.on "row", (row)->
data.push row
query.on "end", ()->
callback data