How to connect with mongodb using sailsjs v0.10?

mongodb, node.js, sails.js

Solution

Without seeing code, i can only assume a few things.

- You're starting a new sailsjs v0.10 project

- You dont have your configuration setup properly.

If this isnt the case, let me know so i can update the answer appropriately.

I have a boilerplate for v0.10 that has a few things baked into it, so you can see how its done. See that repo here

`connections.js` is the appropriate filename, it was changed in `0.10`.

First make sure sails-mongo is installed.

#From your project root run
npm install sails-mongo --save

Next you need to define your connection, and tell sails what adapter to use for models by default. Here is an example of what `connections.js` and `models.js` should look like.

connections.js

module.exports.connections = {
  mongodb: {
    adapter   : 'sails-mongo',
    host      : 'localhost',
    port      : 27017,
    user      : '',
    password  : '',
    database  : 'yourdevdb'
  }
}

models.js

module.exports.models = {

  // Your app's default connection.
  // i.e. the name of one of your app's connections (see `config/connections.js`)
  //
  // (defaults to localDiskDb)
  connection: 'mongodb'
};

You can also specify your connections in `config/local.js` to avoid commiting sensitive data to your repository. This is how you do it.

You dont need to specify all of the contents, as `local.js` will override whats defined in `connections.js` Sails will also combine them.

local.js

module.exports = {
  connections: {
      mongodb: {
        host      : 'localhost',
        port      : 27017,
        user      : '',
        password  : '',
        database  : 'yourdevdb'
      }
  }
}

You can even define your adapter in a single model, for instances where you need a single model to talk to a different database type.

You do this by specifying the `adapter:` in your model..

module.exports = {
  adapter: 'myothermongodb',
},
config: {
  user: 'root',
  password: 'thePassword',
  database: 'testdb',
  host: '127.0.0.1'
},

Problem

Now Using sailsjs v0.10 . Configure connections.js and models.js and change it to connection: 'localMongodbServer' ,installed npm install sails-mongo. Aftet all this it shows error ``` var des = Object.keys(dbs[collectionName].schema).length === 0 ? ^ TypeError: Cannot read property 'schema' of undefined at Object.module.exports.adapter.describe (app1_test/node_modules/sails-mongo/lib/adapter.js:70:48) ``` If change collections.js to adapter.js shows error ``` [err] In model (model1), invalid connection :: someMongodbServer [err] Must contain an `adapter` key referencing the adapter to use. ```

Original source