sailsjs在将其更改为mongodb后仍然使用默认数据库

时间:2015-02-22 13:24:32

标签: node.js mongodb sails.js sails-mongo

我是sailsjs的新手,目前正致力于使用sailsjs的项目。我想将默认数据库更改为mongodb。我是在config/local.js中完成的,如下面的

connections: {
    'defaults': 'mongo',
    mongo: {
       module: 'sails-mongo',
       host: 'localhost',
       user: '',
       password: '',
       database: 'dbName',
       schema: true
    }
}

启动mongodb并尝试使用应用程序(我正在处理)创建一些数据,然后当我使用mongodbmongodb command line tool中检查时。它在那里找不到数据,当我在应用程序中检查它时,它会加载数据库中的所有数据。这意味着它仍然使用存储该数据的默认数据库。

我使用的是sailsjs版本0.11.0

4 个答案:

答案 0 :(得分:2)

多个命名适配器可能存在一些问题。

最好以不同的方式完全命名所有内容(也就是MongoDev,MongoProd),如果您的问题是将开发和生产分开,那么所有的连接和默认模型参数都在 配置/ ENV /   - production.js   - development.js

您应该查看以下链接

https://github.com/balderdashy/sails/issues/939

Handling database environment configuration in Sails.js

答案 1 :(得分:1)

您需要在位于config文件夹中的 models.js 文件中更改模型使用的连接。设置:

connection: 'mongo'

通常,您可以在connections.js文件或local.js文件中定义适配器。 Local.js优先,主要用于保护敏感配置信息(密码等),因为它不会通过git上传。您仍然需要在models.js文件中设置实际使用的适配器。

答案 2 :(得分:1)

刚刚运行npm install sails-mongo

/config/connections.js

上添加以下配置
 mongodbServer: {
    adapter: 'sails-mongo',
    host: 'localhost',
    port: 27017,
    database: 'test',
    schema:true
  }

mongodbServer

中提及/config/models.js,如下所示
connection: 'mongodbServer',
migrate: 'alter'

答案 3 :(得分:0)

您的适配器是否已定义?在connection.js中它将是

localDiskDb: {
 adapter: 'sails-mongo'
},
someMongodbServer: {
    adapter: 'sails-mongo',
    host: 'localhost',
    port: 27017,
},

我也是新手,但我很确定你不需要联系local.js