在Meteor的创业公司

时间:2015-06-22 09:01:11

标签: javascript json meteor startup

我想在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"中使用它。

1 个答案:

答案 0 :(得分:2)

好的,您需要查看Structuring your application。您必须先使用定义加载文件,或者稍后加载fixture的文件。

通常情况下,您的集合位于 lib / 中,而您的fixture位于 server / fixtures.js 中。

因此,如果您将插入代码放入 server / fixtures.js ,它将会起作用。