0

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 

ストリーミングされたデータを送信するための他の方法はありますか、またはソケットを使用して結果をビューにストリーミングする必要がありますか?

4

3 に答える 3

0

好みのテンプレート エンジンを直接使用できます

var row = _.template('<tr><td> <%= id > </td> </tr>');
...
database.getUser "username", (result)->
  res.write( row(result) );
于 2012-04-18T08:55:59.813 に答える
0

Express パーシャルを使用することもできます。

于 2012-04-18T12:27:00.853 に答える
0

ストリームが終了してコールバックを実行するときにリッスンできるデータをストリーミングしているので、昨夜のインスピレーションの瞬間にそれを理解しました。そうすれば、データを配列にプッシュしてから、次のようにコールバックで使用できます。

 query = mysql.query "select * from users where id = 2"
 data = []
 query.on "row", (row)->
   data.push row
 query.on "end", ()->
   callback data
于 2012-04-18T15:46:17.780 に答える