【问题标题】:SailsJS ConnectionsSailsJS 连接
【发布时间】:2019-09-25 22:13:35
【问题描述】:

我使用 SailsJS 构建了我的代码,并将连接配置为使用 PostgreSQL。但是在用户名和密码字段上,我想从另一个函数中检索这些信息。任何人都知道我该怎么做。

例子:

pgDatabase: {
     adapter: 'sails-postgresql',
     host: 'server',
     port: port,
     user: getUsername(function(p) {
       return(p);
     }), // optional
     password: getPassword(function(c) {
       return(c);
     }), // optional
     database: 'db', //optional
     pool: false
   }

【问题讨论】:

    标签: node.js sails.js


    【解决方案1】:

    您可以在 config/env 文件中为开发和生产定义不同的用户名和密码,在连接中您可以访问它,如下面的代码行所示

    username: (process.env.NODE_ENV == "production") ? "productionUser" : "otherUserName",
    password: (process.env.NODE_ENV == "production") ? "productionPassword" : "otherPassword";
    

    可以在升帆时设置 NODE_ENV

    NODE_ENV=production sails lift
    NODE_ENV=development sails lift
    

    【讨论】:

    • 这没问题,但不是我需要的。我需要从功能中获取,而不是从环境中获取。因为我有另一个系统来管理用户和密码
    【解决方案2】:

    您可以在您的 api/services 方法中定义用户名、密码。根据您的需要,您可以创建多个服务或单个服务,这将返回所需的值。

    module.exports = () => {
      return () => {
    
        return 'localhost';
        //return Promise.resolve(convertedObject);
      }
    

    }

    根据您的要求,Sailsjs 引导文件是设置数据库凭据的最佳位置。

    sails.config.bootstrap 是一个可定制的异步引导程序 在您的 Sails 应用程序启动(即启动)之前运行的函数。

    引导程序中的代码:

    sails.config.connections.developmentServer.host = setDBCredentials()();
    

    在上面的“developmentServer”是 MySQL 适配器键。

    developmentServer: {
        adapter: 'sails-mysql',
        host: '',
        user: 'root', //optional
        password: 'password', //optional
        database: 'bb' //optional
      }
    

    抬起应用程序,它会将主机设置到您的适配器中

    【讨论】:

      【解决方案3】:

      在 Node_env 文件中提及它

      username: (process.env.NODE_ENV == "production") ? "productionUser" : "otherUserName",
      password: (process.env.NODE_ENV == "production") ? "productionPassword" : "otherPassword";
      

      或者在应用根路径上创建一个 js 文件并导出配置文件,现在在 connection.js 上只需导入文件并使用它

      export config
      Ex: 
      dbconfig.js
        const config =  (username, password) => {
                 // Do your staff hear
                 return username
                 return password
      }
      export default config
      
      import config
      Ex:
      connection.js
      const dbConfig = require(../dbconfig.js)
      const username = dbConfig.config , password = dbConfig.config
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-10
        • 2014-03-03
        • 2015-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-16
        相关资源
        最近更新 更多