2013-04-10 7 views
13

ユーザーがいない場合は管理者ユーザーを作成します。私は、サーバーのフォルダ流星にデフォルトユーザーを作成するには?

Meteor.startup(function() { 
    if(!Meteor.users.find().count()) { 
    var options = { 
     username: 'admin', 
     password: 'default-password', 
     email: '[email protected]' 
    }; 
    Accounts.createUser(options); 
    } 
}); 

この内部のjsファイルでそれを試してみましたエラーは、私が何か間違ったことをやっているか、これは流星のバグであるコンソール

Error 
    at app/packages/livedata/livedata_common.js:143:26 
    at /Users/camilo/Documents/Proyectos/IM/interno/.meteor/local/build/server/server.js:282:7 
    at Array.forEach (native) 
    at Function._.each._.forEach (/Users/camilo/.meteorite/meteors/meteor/meteor/0ffea1c4c308ed24906984f99b13b8fca5a0956c/dev_bundle/lib/node_modules/underscore/underscore.js:79:11) 
    at run (/Users/camilo/Documents/Proyectos/IM/interno/.meteor/local/build/server/server.js:227:7) 
=> Exited with code: 1 

上の流星ショーですか!

私は流星0.6.1を使用していますし、0.9.9

+0

同様の質問http://stackoverflow.com/questions/11629759/how-can-i-create-users-server-sideがありますこの問題は解決しません。 – Camilo

+0

アカウントパスワードパッケージとアカウントベースパッケージはありますか? – Akshat

+0

はい。クライアント、ログイン、ログアウトなどからユーザーを作成することができます – Camilo

答えて

0

いくつかの時間後、私は流星0.6.4で再び上記のコードをテストし、それが問題なく働きました。おそらく流星0.6.1の問題だったか、コードのどこかで問題を偶然解決しました。

5

この方法をNode.jsのは、私の作品:

var users=[ 
    {email: "[email protected]", username: "gra", name: "gra", roles:['admin']} 
]; 
_.each(users, function(user){ 
    Accounts.createUser({ 
     email: user.email, 
     password: "admin", 
     profile: {username: user.username}, 
     profile: {name: user.name}, 
     roles: user.roles 
    }); 
}); 
+0

あなたのコードで同じエラーが発生しました。サーバー側かクライアント側に置いていますか? – Camilo

+0

私はサーバー側に置く – lfergon

1

は、私は流星でユーザーを作成することに何の問題を発見したことがありません。 これは私のCoffeeScriptのコードです:

Meteor.startup -> 
    if Meteor.users.find.count() is 0 
    options = 
     email: '[email protected]' 
     password: 'pass' 
    Accounts.createUser(options) 
32

私は/server/fixtures.jsファイルを提案します。このファイルでは、次のようなデフォルトのユーザー作成を追加することができます。

if (Meteor.users.find().count() === 0) { 
    Accounts.createUser({ 
     username: 'username', 
     email: 'email', 
     password: 'asdfasdf', 
     profile: { 
      first_name: 'fname', 
      last_name: 'lname', 
      company: 'company', 
     } 
    }); 
} 
+2

このコードはMeteorが正しく起動されるたびに少なくとも1回は実行されるでしょうか?スレッドごとに潜在的に1回ですか?私は、 'fixtures.js'がファイル名として特別な意味を持つとは思わないので、Meteor.startup()呼び出しでラップしたいと思うでしょう。 – chmac

+2

はい、これは起動時に毎回実行されます。 Meteor.startup()のラッピングは傷つけられず、誤って実行されてしまうことに対する少しの保険を提供します。いいえ、ファイル名fixtures.jsには意味がありません。私は恐らくDiscover Meteorの本の名前を持っていると思いますか? – SpacePope

関連する問題