1

これには多くのアプリケーションがありますが、現在のアプリケーションは Cakefile からデータベースにテスト データをロードしています。mongodb ドライバーを使用してドキュメントを作成すると、自動的に追加されるような文字列_idObjectId("527d9761ae5c03ce1c000001")代わりに of が追加されます。Meteor コンテキストで Cakefile を実行できるようにして、mongodb ドライバーを使用する代わりに簡単に呼び出すことができるようにしたいと考えています。"he3KMaEwsX457ejPW"Meteor.Collection.insertCollectionName.insert

4

1 に答える 1

2

これが私がこれを行う方法です:

Cakefile

{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'。ここで必要な任意の文字列で開始を実行できます。たとえば、次のようになります。

cake -e production start

サーバー/initialize.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'関数名とコレクション名を交互に並べた配列を作成します。次に、ペアごとに、コレクションが空の場合にのみ関数を呼び出します。この場合、 and を定義する必要がinsertUsersありinsertGroupsます。

このセットアップは、毎回データベースに自動的に入力されるため、気に入っていますmeteor reset

于 2013-11-09T16:34:58.377 に答える