[英]How to connect with mongodb using sailsjs v0.10?
現在使用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
中更改。
首先確保安裝了sails-mongo。
#From your project root run
npm install sails-mongo --save
接下來,您需要定義連接,並告訴sails默認情況下用於模型的適配器。 以下是connections.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
指定連接,以避免將敏感數據提交到存儲庫。 這就是你如何做到的。
您不需要指定所有內容,因為local.js
將覆蓋在connections.js
定義的內容local.js
也會將它們組合在一起。
module.exports = {
connections: {
mongodb: {
host : 'localhost',
port : 27017,
user : '',
password : '',
database : 'yourdevdb'
}
}
}
您甚至可以在單個模型中定義適配器,以用於需要單個模型與不同數據庫類型進行通信的實例。
您可以通過在模型中指定adapter:
來完成此操作。
module.exports = {
adapter: 'myothermongodb',
},
config: {
user: 'root',
password: 'thePassword',
database: 'testdb',
host: '127.0.0.1'
},
如果您使用的是v0.10,則需要在Github上從v0.10
分支安裝v0.10
sails-mongo
,因為在v0.10中更改了Waterline適配器API。 在你的package.json
"sails-mongo": "https://github.com/balderdashy/sails-mongo/archive/v0.10.tar.gz"
然后運行npm install
。
在config/connections.js
您應該描述MongoDB適配器,並且在您的config/models.js
必須引用此適配器。
就是這樣, sails lift
應該在那之后起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.