sql >> Databasteknik >  >> NoSQL >> MongoDB

Kan inte få Accounts-Base-paketet att peka på rätt databas

Tittar direkt på koden för kontobaspaketet (Meteor v 1.0.4), det verkar som att de inte officiellt stöder ett sätt att ställa in databasen för användarens samling. Som du kan se av koden ansluter servern alltid med standardinställningen Meteor.connection:

Meteor.users = new Mongo.Collection("users", { // line 141
  _preventAutopublish: true,
  connection: Meteor.isClient ? Accounts.connection : Meteor.connection
});

Accounts.connection anges ovan, men det är uttryckligen inte stöds:

// ~ 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)
  }
}

Jag kunde dock få den att använda min databas genom att ställa in miljövariabeln $MONGO_URL (som jag tror anger standardanslutningen, som används av kontopaketet):

I ett terminalfönster startade jag mongo på port 27017

> mongod

I ett annat fönster ställde jag in MONGO_URL och la till lämpliga paket och startade sedan meteor:

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

Och slutligen i min webbläsarkonsol skapade jag ett konto:

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

Sedan kopplade jag till test databas i min mongo-instans:

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

Kort sagt, jag tror att du har tre inte superbra alternativ:

  • Använd MONGO_URL miljövariabel (förmodligen det bästa alternativet)
  • Hacka kontobaspaketet för att göra vad du vill
  • Prova den ACCOUNTS_CONNECTION_URL som inte stöds variabel, som kan 'försvinna när som helst'



  1. Importera json från fil till mongodb med mongoimport

  2. Hur installerar man PHP MongoDB-drivrutinen för XAMPP på OSX?

  3. django-nonrel exclude listfield från admin

  4. Få $elemMatch (projektion) att returnera alla objekt som matchar kriterierna