这有很多应用程序,但我当前的应用程序是从 Cakefile 将测试数据加载到数据库中。当我使用 mongodb 驱动程序创建文档时,它会添加一个_id
of 而不是自动添加ObjectId("527d9761ae5c03ce1c000001")
的字符串。我希望能够在 Meteor 上下文中运行 Cakefile,这样我就可以简单地调用而不是使用 mongodb 驱动程序。"he3KMaEwsX457ejPW"
Meteor.Collection.insert
CollectionName.insert
问问题
194 次
1 回答
2
这是我如何做到这一点:
蛋糕文件
{spawn} = require 'child_process'
option '-e', '--environment [ENVIRONMENT_NAME]', 'set the environment for `start`'
task 'start', 'start the server', (options) ->
process.env.METEOR_ENV = options.environment ? 'development'
spawn 'meteor', [], stdio: 'inherit'
现在,当我运行时cake start
,METEOR_ENV
变量将默认为'development'
. 您可以在此处使用所需的任何字符串运行 start,例如:
cake -e production start
服务器/初始化.coffee
Meteor.startup ->
environment = process.env.METEOR_ENV ? 'production'
return if environment is 'production'
insertCollections = []
if environment is 'development'
insertCollections = [
insertUsers, Meteor.users
insertGroups, Groups
]
for insert, index in insertCollections by 2
collection = insertCollections[index + 1]
insert() if collection.find().count() is 0
在这个例子中,服务器启动后,它会查看我们所处的环境。如果是'production'
,则退出而不初始化数据库。如果环境是 ' development'
,则创建一个交替函数和集合名称的数组。然后对于每一对,仅当集合为空时才调用该函数。在这种情况下,您需要在其他地方定义insertUsers
和insertGroups
。
我喜欢这种设置,因为它会在每个meteor reset
.
于 2013-11-09T16:34:58.377 回答