2012-03-01 16 views
1

私はcoffeescriptを使用してnode.jsを学習していますが、フローの周りを頭で囲むのに問題があります。Node.js CoffeeScript非同期スタイルとループ

私の最初の仕事は、csvファイルを解析し、解析されたレコードをmongodbに追加することです。ここで私はこれまで持っているものです。

https://gist.github.com/1953474

私はそれがとても終えることが最後だったかどうかを確認するためにチェックし、コールバックの最後に呼び出しデクリメントに追加ルール機能刻みシンプルなカウンターVARを使用exitを呼び出すことができます。私はこれが正しい形式だと思うが、より適切な方法があれば、私は提案をすることができる。

私が実際に抱えている問題は、何も解析されずにデータベースに追加されないことです。当初、私は接続が確立されるのを待っていなかったが、今は私が困惑していることに気づいた。どのように私がマングースと一緒に働くべきかに関するいくつかの詳細を見逃してしまったのだろうかと思っています...

アイデア?

+0

print(util.printから)を印刷し、それ以外はmongooseを避けてネイティブドライバを使用することをお勧めします。 – Raynos

答えて

0

お客様のカウンタには、特に2つのバグがあります。

レコード数がゼロの場合は、呼び出しを終了しません。

そして、それ以前よりずっと減少しています。 n_out--戻りn_out--n_out戻りn_out - 1

あなたの他の間違いは、あなたがそれを後悔、CoffeeScriptのを使用しています。

addRules = (records) -> 
    n_out = 1 
    next =() -> 
    if --n_out is 0 
     exit() 
    next() 
    addRule = (r) -> 
    n_out++ 
    util.print n_out 
    Rule.update {state: r.state}, r, {upsert: true}, (err) -> 
     if err 
     util.print r.state + ": " + err + "\n" 
     else 
     util.print "processed " + r.state + " rule\n" 
     next() 
    addRule(r) for r of records 
+1

これはANDです... <<を使ってレコード配列に何も追加されていませんでした。私はデクリメントエラーを修正し、<<の代わりにプッシュを使用していました。 https://gist.github.com/1954107 @Raynos:なぜCoffeeScriptに対する偏見ですか? – Tim

+0

@Tim https://twitter.com/#!/Raynos2/status/173884231473299457 – Raynos

+0

しかし、私にとっては、より生産的であることは、そのような純粋な感受性よりも優れています。私は、CoffeeScriptがRubyとPythonについて好きなものを素敵にブレンドしていますが、一般的にはパフォーマンスが良いと思います。これを手伝ってくれてありがとう! – Tim

関連する問題