我们正在开发Meteor应用程序,我们需要在创建后在Mongo数据库中随时提供一些数据。
例如,我们有一个名为Users
的Mongo集合,我们希望从两个用户开始(例如John
和Susan
)。我们不想手动执行此操作,因此在Mongo重置之后,如果这些数据由于脚本而自动添加到应用程序的Mongo数据库中会很棒。
什么是最好的"最精致的"如何实现这个目标?
答案 0 :(得分:5)
第一个简单而且天真的解决方案是使用一些启动脚本,例如/dev/init_data.js
:
Meteor.startup(function() {
if(typeof someCollection.findOne() === 'undefined') {
someCollection.insert(...);
}
});
但是这会进入部署...除非你 手动 (呃)在部署之前擦除/dev
文件夹或者做一些其他丑陋的技巧代码处于非活动状态。我们根本不想要部署这些代码
因此,让我们使用调试package代替!
meteor create --package devinitdata
在新的package.js
文件中:
Package.describe({
name: 'devinitdata',
...
debugOnly : true //!
});
您可以在package files中编写初始化代码,以便用各种混乱的数据填充您的收藏。
答案 1 :(得分:0)
如何使用以下内容创建db_init.js文件:
if (Meteor.isServer && (process && process.env && process.env.NODE_ENV === "development")) {
Meteor.startup(function () {
var newUser = {
username: 'test',
email: 'test@test.com',
profile: {
phone: '555-555-5555'
},
password: 'test'
};
Accounts.createUser(newUser);
});
}
这可以与像percolatestudio / meteor-factory
这样的东西结合起来