0

Mongoose フィクスチャローダーに問題があり、何が問題なのかわかりません。

次のようなドキュメントに従ってデータをロードすると:

var data = { User: [{name: 'Alex'}, {name: 'Bob'}] };

読み込まれません。コードを調べると、このファイルには async.forEach イテレータがあり、トリガーされないようです。テスト用の単純なファイルを作成する まだこれを正常に動作させることができません。明らかに、コンソールは「ユーザー」を出力するはずですが、そうではありません。誰かが問題が何であるかについていくつかの光を当てることができますか? 非同期についての質問を言いましたが、最終的にはマングースローダーを機能させようとしているので、コード構造内にとどまる必要があることに注意してください。

var async = require('async');

var data = { User: [{name: 'Alex'}, {name: 'Bob'}] };

var iterator = function(modelName, next){
  // not working
  console.log(modelName);
  next();
};

async.forEach(data, iterator, function() { });
4

1 に答える 1

1

NPM リポジトリのpow-mongoose-fixturesモジュールにはバグが含まれています (バグ レポートを参照)。

あなたのコードには同じバグが含まれています:

async.forEach(data, ...)

forEach()配列で動作しますdataが、オブジェクトです。モジュールの場合、キーの配列を取得するために使用することで修正されました。Object.keys()あなたもそれを使うことができます:

async.forEach(Object.keys(data), ...);

作業をmongoose-fixtures開始するには、GitHub バージョンをインストールします。

npm install git://github.com/powmedia/mongoose-fixtures.git

コードにもいくつかの変更を加える必要があります。

var fixtures = require('mongoose-fixtures'); // renamed from 'pow-mongoose-fixtures'
var client   = mongoose.connect(...);
...
fixtures.load(data, client); // need to pass the client object
于 2013-04-29T09:07:47.217 に答える