En regardant directement sur le code du package accounts-base (Meteor v 1.0.4), il semble qu'ils ne prennent pas officiellement en charge un moyen de définir la base de données pour la collection d'utilisateurs. Comme vous pouvez le voir dans le code, le serveur se connecte toujours en utilisant la Meteor.connection par défaut :
Meteor.users = new Mongo.Collection("users", { // line 141
_preventAutopublish: true,
connection: Meteor.isClient ? Accounts.connection : Meteor.connection
});
La Accounts.connection
est défini ci-dessus, mais ce n'est explicitement pas pris en charge :
// ~ line 118
if (Meteor.isClient
....
if (typeof __meteor_runtime_config__ !== "undefined" &&
__meteor_runtime_config__.ACCOUNTS_CONNECTION_URL) {
// Temporary, internal hook to allow the server to point the client
// to a different authentication server. This is for a very
// particular use case that comes up when implementing a oauth
// server. Unsupported and may go away at any point in time.
//
// We will eventually provide a general way to use account-base
// against any DDP connection, not just one special one.
Accounts.connection = DDP.connect(
__meteor_runtime_config__.ACCOUNTS_CONNECTION_URL)
}
}
Cependant, j'ai pu le faire utiliser ma base de données en définissant la variable d'environnement $MONGO_URL (qui, je crois, définit la connexion par défaut, qui est utilisée par le package de comptes) :
Dans une fenêtre de terminal, j'ai démarré mongo sur le port 27017
> mongod
Dans une autre fenêtre, j'ai défini le MONGO_URL et ajouté les packages appropriés, puis j'ai démarré meteor :
> export MONGO_URL=mongodb://localhost:27017/test
> meteor add accounts-base
> meteor add accounts-password
> meteor
Et enfin dans la console de mon navigateur j'ai créé un compte :
> Accounts.createUser({username: 'me', password: 'guest'});
Puis je me suis connecté à test
base de données dans mon instance mongo :
> mongo
MongoDB shell version: 3.0.1
connecting to: test
> db.users.find()
{ "_id" : "L3EDrS8FnRymDLhPp", ... "username" : "me" }
En bref, je pense que vous avez trois options pas super géniales :
- Utilisez
MONGO_URL
variable d'environnement (probablement la meilleure option) - Hackez le package accounts-base pour faire ce que vous voulez
- Essayez l'
ACCOUNTS_CONNECTION_URL
non pris en charge variable, qui peut "disparaître à tout moment"