MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Не може да накара пакета Accounts-Base да сочи към правилната база данни

Гледайки директно кода за пакета accounts-base (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 на порт 27017

> mongod

В друг прозорец зададох MONGO_URL и добавих подходящите пакети, след което стартирах meteor:

> export MONGO_URL=mongodb://localhost:27017/test
> meteor add accounts-base
> meteor add accounts-password
> meteor

И накрая в конзолата на браузъра си създадох акаунт:

> Accounts.createUser({username: 'me', password: 'guest'});

След това се свързах с test база данни в моя mongo екземпляр:

> mongo
  MongoDB shell version: 3.0.1
  connecting to: test
> db.users.find()
  { "_id" : "L3EDrS8FnRymDLhPp", ... "username" : "me" }

Накратко, мисля, че имате три не-супер-страхотни опции:

  • Използвайте MONGO_URL променлива на средата (вероятно най-добрият вариант)
  • Хакнете базовия пакет за акаунти, за да правите каквото искате
  • Изпробвайте неподдържания ACCOUNTS_CONNECTION_URL променлива, която може да „изчезне по всяко време“



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Задайте малки файлове в ShardingTest

  2. Стартиране на mongodb сървър с помощта на npm скриптове

  3. Актуализирайте много в mongoose

  4. Ръководството за одит на база данни с отворен код на DevOps – всичко, което трябва да знаете

  5. Групиране по дата с местна часова зона в MongoDB