Javascript 在Meteor'的采集中插入数据;s启动
我想在Meteor启动时插入数据。(和之后从JSON文件) 在启动时,我创建了一个新帐户,我想插入数据,并在这个帐户创建后将其链接到这个帐户 这是在启动时创建新帐户的代码:Javascript 在Meteor'的采集中插入数据;s启动,javascript,json,meteor,startup,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", profi
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”中使用它。好的,你会想签出。您必须先加载带有定义的文件,或稍后加载带有
夹具的文件
通常,您的集合位于lib/中,而fixture
s位于server/fixtures.js中
因此,如果您将插入代码放入server/fixtures.js中,它就会工作。您能否添加一个说明,说明哪些代码不工作?是的,对不起,我刚刚编辑了:)谢谢!我将更改我的应用程序树,但您能否告诉我如何将用户ID链接到电子邮件?”test@test.com“?这Meteor.users.findOne({emails:{$elemMatch:{address:}test@test.com“}}})
返回用户文档
。因此,您只需执行Meteor.users.findOne({emails:{$elemMatch:{address:}test@test.com“}})。\u id
(服务器端)现在可以工作了,非常感谢!这很奇怪,我从来没有听说过meteor.js中的这个“fixture”文件……我是从。只是澄清一下;文件本身并不特殊。Meteor首先加载lib
目录,然后加载其他所有目录,包括您server
目录。是的,我知道,但很多人使用“fixture”作为此文件的名称,它可能已经成为一个小标准:)