direct naar de code voor het accounts-base-pakket kijken (Meteor v 1.0.4), het lijkt erop dat ze officieel geen manier ondersteunen om de database voor de gebruikersverzameling in te stellen. Zoals je aan de code kunt zien, maakt de server altijd verbinding met de standaard Meteor.connection:
Meteor.users = new Mongo.Collection("users", { // line 141
_preventAutopublish: true,
connection: Meteor.isClient ? Accounts.connection : Meteor.connection
});
De Accounts.connection
is hierboven ingesteld, maar het is expliciet niet ondersteund:
// ~ 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)
}
}
Ik kon het echter mijn database laten gebruiken door de $MONGO_URL-omgevingsvariabele in te stellen (die volgens mij de standaardverbinding instelt, die wordt gebruikt door het accountspakket):
In één terminalvenster startte ik mongo op poort 27017
> mongod
In een ander venster stelde ik de MONGO_URL in en voegde de juiste pakketten toe, en startte toen meteoor:
> export MONGO_URL=mongodb://localhost:27017/test
> meteor add accounts-base
> meteor add accounts-password
> meteor
En tot slot heb ik in mijn browserconsole een account aangemaakt:
> Accounts.createUser({username: 'me', password: 'guest'});
Toen maakte ik verbinding met test
database in mijn mongo-instantie:
> mongo
MongoDB shell version: 3.0.1
connecting to: test
> db.users.find()
{ "_id" : "L3EDrS8FnRymDLhPp", ... "username" : "me" }
Kortom, ik denk dat je drie niet-super-geweldige opties hebt:
- Gebruik de
MONGO_URL
omgevingsvariabele (waarschijnlijk beste optie) - Hack het op accounts gebaseerde pakket om te doen wat u wilt
- Probeer de niet-ondersteunde
ACCOUNTS_CONNECTION_URL
variabele, die 'op elk moment kan verdwijnen'