Глядя на directly at the code for the accounts-base package (Meteor v 1.0.4), похоже, что они официально не поддерживают способ установки базы данных для коллекции пользователей. Как вы можете видеть из кода, сервер всегда подключается с помощью Meteor.connection по умолчанию:
Meteor.users = new Mongo.Collection("users", { // line 141
_preventAutopublish: true,
connection: Meteor.isClient ? Accounts.connection : Meteor.connection
});
Accounts.connection
установлен выше, но это явно не поддерживаются:
// ~ 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)
}
}
Однако, Мне удалось заставить его использовать мою базу данных, установив переменную среды $ MONGO_URL (которая, как я полагаю, устанавливает соединение по умолчанию, которое используется в пакете учетных записей):
В одном окне терминала я начал mongo on порт 27017
> mongod
В другом окне, я поставил MONGO_URL и добавил соответствующие пакеты, а затем начал метеор:
> export MONGO_URL=mongodb://localhost:27017/test
> meteor add accounts-base
> meteor add accounts-password
> meteor
И, наконец, в моем браузере консоли я создал учетную запись:
> Accounts.createUser({username: 'me', password: 'guest'});
Затем я подключился к базе данных test
в своем экземпляре монго:
> mongo
MongoDB shell version: 3.0.1
connecting to: test
> db.users.find()
{ "_id" : "L3EDrS8FnRymDLhPp", ... "username" : "me" }
Короче говоря, я думаю, что у вас есть три не-супер-большие варианты:
- Использование переменной
MONGO_URL
среды (вероятно, лучший вариант)
- взламывать счета-базовый пакет, чтобы сделать то, что вы хотите
- Попробуйте неподдерживаемый
ACCOUNTS_CONNECTION_URL
переменную, которая может «уйти в любой момент времени»
Я закончил с использованием MONGO_URL.I также обнаружил, что я использовал порт 3001 для некоторого реак сын, поэтому я изменил его на 27017, и все получилось так, как должно. – JoeTidee
@JoePrivett Рад, что все получилось! Я думаю, что 3001 порт Метеор использует для Монго по умолчанию, FWIW (но, похоже, не находит, что в документах, на удивление). –