我遇到了Mongoose灯具loader的问题,我不确定是什么问题。
根据以下文档加载数据时:
var data = { User: [{name: 'Alex'}, {name: 'Bob'}] };
它没有加载。探索代码我看到在这个file中有一个async.forEach迭代器似乎没有被触发。创建一个简单的文件进行测试我仍然无法让它按原样运行。显然,控制台应该打印“用户”但不是。有人可以说明问题可能是什么吗?请注意,虽然我已经提到了关于异步的问题,但最终我试图让mongoose加载器工作,所以我需要保持其代码结构。
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() { });
答案 0 :(得分:1)
NPM存储库中的pow-mongoose-fixtures
模块包含一个错误(请参阅bug report)。
您的代码包含相同的错误:
async.forEach(data, ...)
forEach()
对数组进行操作,但data
是一个对象。如果是模块,it was fixed使用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