expressjs を使っているのですが、 streamlinejsでの使い方がわかりません。
エクスプレスコードを見てください:
var app = express.createServer();
app.get('/', function(req,res) {
User.find({name:'Jack'}, function(err, users) {
res.send(users);
});
});
コードでstreamlinejsを使用するには?
expressjs を使っているのですが、 streamlinejsでの使い方がわかりません。
エクスプレスコードを見てください:
var app = express.createServer();
app.get('/', function(req,res) {
User.find({name:'Jack'}, function(err, users) {
res.send(users);
});
});
コードでstreamlinejsを使用するには?
これは、よくある質問 (https://github.com/Sage/streamlinejs/blob/master/FAQ.md#the-underscore-trick-is-designed-for-callbacks-but-not- events-how-do-i-deal-with-events)。
最も簡単な解決策は、アンダースコアを追加のパラメーターとしてget
コールバックに追加することです。
app.get('/', function(req,res, next, _) {
var users = User.find({name:'Jack'}, _);
res.send(users);
});
connect
唯一の問題は、いつかそのコールバックに 4 番目のパラメーターを追加する場合です。connect
以下は少し安全です (ただし、コールバック API を変更する理由がわからないため、おそらくやり過ぎです)。
app.get('/', function(req,res) {
(function(_) {
var users = User.find({name:'Jack'}, _);
res.send(users);
})(trap); // trap is a generic callback that handles errors
});
The Thingdomには Express と Streamline を使用します。そのために、next
コールバック (3 番目のパラメーター) をルート ハンドラーとミドルウェア ハンドラーの両方で Streamline に適したコールバックにする単純なラッパーを作成しました。
どうぞ:
https://gist.github.com/1087991
=)
私はそれを汎用モジュールにして npm に公開するつもりでした。すぐにそうするつもりです。 編集: https://github.com/aseemk/express-streamline
この結果、トレードオフが 1 つあります。ルート ハンドラを他のルート ハンドラに「継続」(フォール スルー) させることはできません。ただし、その機能を使用したことはありませんし、使用することも想定していません。すべてのルート ハンドラーが最終目的地であることがわかっている方がはるかに簡単です。したがって、そのトレードオフは問題ありませんでした。
編集:これは Express 2.x でのみテストされています。