现在使用sailsjs v0.10。配置connections.js和models.js并将其更改为connection:’localMongodbServer’,已安装npm install sails-mongo。
都显示错误
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)
如果将collections.js更改为adapter.js会显示错误
[err] In model (model1), invalid connection :: someMongodbServer [err] Must contain an `adapter` key referencing the adapter to use.
不看代码,我只能承担几件事。
如果不是这种情况,请告诉我,以便我可以适当地更新答案。
我有一个v0.10的样板,其中包含了一些内容,因此您可以看到它是如何完成的。在此处查看该回购
connections.js是适当的文件名,已在中进行了更改0.10。
connections.js
0.10
首先确保安装了sails-mongo。
#From your project root run npm install sails-mongo --save
接下来,您需要定义连接,并告诉Sails默认情况下要用于模型的适配器。这是一个什么样的例子connections.js并models.js应该像。
models.js
module.exports.connections = { mongodb: { adapter : 'sails-mongo', host : 'localhost', port : 27017, user : '', password : '', database : 'yourdevdb' } }
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' };
您也可以指定连接,config/local.js以避免将敏感数据提交到存储库。这就是你的做法。
config/local.js
您不需要指定所有内容,因为local.js将覆盖connections.jsSails中定义的内容,也将它们结合起来。
local.js
module.exports = { connections: { mongodb: { host : 'localhost', port : 27017, user : '', password : '', database : 'yourdevdb' } } }
您甚至可以在单个模型中定义适配器,例如在需要单个模型与其他数据库类型对话的情况下。
您可以通过adapter:在模型中指定来执行此操作。
adapter:
module.exports = { adapter: 'myothermongodb', }, config: { user: 'root', password: 'thePassword', database: 'testdb', host: '127.0.0.1' },