我想在Meteor的创业公司中插入数据。 (从JSON文件开始)
在启动时,我创建了一个新帐户,我希望在创建此帐户后插入数据并将其链接到此帐户。
这是在启动时创建新帐户的代码:
if(!Meteor.users.findOne({emails: { $elemMatch: { address: "test@test.com"}}})){
var id = Accounts.createUser({ email: "test@test.com", password: "1234", profile: { name: 'Test' } });
Meteor.users.update({_id: id }, { $set: { admin: false }});
}
之后,我需要插入数据并使用其ID将其链接到此帐户。 (在不同的收藏中)。
所以我尝试做了类似的事情,但显然它没有工作:
UserData = new Mongo.Collection('user_data');
if(!Meteor.users.findOne({emails: { $elemMatch: { address: "test@test.com"}}})){
var id = Accounts.createUser({ email: "test@test.com", password: "1234", profile: { name: 'Test' } });
Meteor.users.update({_id: id }, { $set: { admin: false }});
UserData.insert({
createdBy: id,
firstname: "test",
/* ... */
});
}
修改
很抱歉没有说清楚。
真正的问题是:
UserData = new Mongo.Collection('user_data');
声明在另一个文件中,所以我不能像上面那样。
因为它不在同一个文件中,所以我试图获得得到的用户ID" test@test.com"作为电子邮件(帐户在启动时创建的电子邮件)。一旦我得到它,我想在" createdBy:ID_HERE"中使用它。
答案 0 :(得分:2)
好的,您需要查看Structuring your application。您必须先使用定义加载文件,或者稍后加载fixture
的文件。
通常情况下,您的集合位于 lib / 中,而您的fixture
位于 server / fixtures.js 中。
因此,如果您将插入代码放入 server / fixtures.js ,它将会起作用。