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

 用户r7t3govjq0 发布于 2023-01-29 08:13

现在使用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.

gorelative.. 35

没有看到代码,我只能假设一些事情.

    你正在开始一个新的sailsjs v0.10项目

    您没有正确配置您的配置.

如果不是这样,请告诉我,我可以适当更新答案.


我有一个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.jsSails中定义的最新内容也将它们组合在一起.

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


bredikhin.. 7

如果您使用的是v0.10,则需要在Github上sails-mongov0.10分支安装,因为在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应该在那之后工作.

2 个回答
  • 没有看到代码,我只能假设一些事情.

      你正在开始一个新的sailsjs v0.10项目

      您没有正确配置您的配置.

    如果不是这样,请告诉我,我可以适当更新答案.


    我有一个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.jsSails中定义的最新内容也将它们组合在一起.

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

    2023-01-29 08:18 回答
  • 如果您使用的是v0.10,则需要在Github上sails-mongov0.10分支安装,因为在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应该在那之后工作.

    2023-01-29 08:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有