簡體   English   中英

如何使用sailsjs v0.10連接mongodb?

[英]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.

沒有看到代碼,我只能假設一些事情。

  1. 你正在開始一個新的sailsjs v0.10項目
  2. 您沒有正確配置您的配置。

如果不是這樣,請告訴我,我可以適當更新答案。


我有一個v0.10的樣板,里面有一些東西,所以你可以看看它是如何完成的。 在這里看到那個回購

connections.js是相應的文件名,它在0.10中更改。

首先確保安裝了sails-mongo。

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

接下來,您需要定義連接,並告訴sails默認情況下用於模型的適配器。 以下是connections.jsmodels.js應該是什么樣子的示例。

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'
};

您還可以在config/local.js指定連接,以避免將敏感數據提交到存儲庫。 這就是你如何做到的。

您不需要指定所有內容,因為local.js將覆蓋在connections.js定義的內容local.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM