如何在Waterline ORM中设置数据库连接字符串

时间:2014-02-18 22:05:57

标签: javascript node.js orm sails.js waterline

我刚从npm下载了Waterline。我有一些文件夹,但无法找到我可以在哪里设置主机/用户/密码等连接我的postgress数据库。我看了水线文件夹中的所有文件,什么都没有。谁能告诉我在哪里设置它?

1 个答案:

答案 0 :(得分:10)

Waterline在当前状态下是Sails框架的子项目。

您要搜索的是放置数据库配置的常规位置。当使用Waterline作为Sails的一部分时,此约定将通过Sails自动要求配置文件进入全局sails对象的方式来定义。

当单独使用Waterline时,你必须自己处理这个部分:你想引导并将你的配置明确地传递到水线。你需要一步一步做的事情:

  1. 在您的情况下,需要Waterline和正确的Waterline适配器:sails-postgresql
  2. 指定adapters config
  3. 指定connections配置,这将采用有问题的配置
  4. 定义并加载collections
  5. 初始化水线
  6. 如何执行所有这些操作的示例,源自这些Waterline示例:https://github.com/balderdashy/waterline/blob/master/example/

    // 1. Require Waterline and the correct Waterline adapter
    Waterline = require('waterline'),
    postgreAdapter = require('sails-postgresql');
    
    var config = {
      // 2. Specify `adapters` config
      adapters: {
        postgre: postgreAdapter
      },
    
      // 3. Specify `connections` config
      postgreDev: {
        adapter: 'postgre',
        host: 'localhost',
        database: 'development',
        user: 'developer',
        password: 'somethingsupersecret'
      }
    };
    
    // 4. Define and load your collections
    var User = Waterline.Collection.extend({
      // collection.identity and collection.connection
      // have to be specified explicitly when using Waterline without Sails
      identity: 'user',
      connection: 'postgreDev',
    
      attributes: {
        ...
      }
    });
    
    var waterline = new Waterline();
    waterline.loadCollection(User);
    
    // 5. Initialize Waterline
    waterline.initialize(config, function(err, models) {
      if (err) throw err;
    
      // Expose your models for further use
    });