node.js - 如何在 sails js 应用程序中全局使用 knexjs

标签 node.js global-variables sails.js waterline knex.js

如果我不使用水线,如何在 Controller 或任何其他模型文件中获取 knex 对象。

例如: 在我的 api/models/Users.js 中

module.exports = {
     find : function(id){
         // my knex query
     },
     insert : function(data){
         // my knex query again   
     } 
}

所以在我的 Controller 中我会这样做:

var result = Users.find(id);

var result = Users.insert({username : 'sailsjs'});

或者 knex 对象将在全局范围内可用,而无需在模型文件本身中使用...这样我就可以在 Controller 中执行 knex 查询

//UsersController/索引

index : function(req, res){
      // my knex query
}

谢谢 阿里夫

最佳答案

//config/bootstrap.js

module.exports.bootstrap = function (cb) {

    var Knex  = require('knex');
    var knex = Knex.initialize({
        client : "mysql",
        connection : {
            host :'localhost',
            user :'root',
            database : 'sales_force',
            password : '*******'
        }
    });
    knex.instanceId = new Date().getTime();

    sails.config.knex = knex;

  // It's very important to trigger this callack method when you are finished 
  // with the bootstrap!  (otherwise your server will never lift, since it's waiting on the bootstrap)
  cb();
};

//在 Controller 中

var knex = sails.config.knex

这将返回 knex 对象。 knex.instanceId 显示各处使用相同的连接。

请建议这是否会导致任何问题。

谢谢 阿里夫

关于node.js - 如何在 sails js 应用程序中全局使用 knexjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23909611/

相关文章:

javascript - 函数原型(prototype) Node 不工作

javascript - 带时区的 node-cron

javascript - 如何在 fetch api 调用中处理 json 以外的值

ruby - 为什么 block 不像方法那样继承调用者的 $SAFE 级别?

javascript - 函数不读取全局变量

python - 从函数访问模块变量是否被认为是不好的做法?

node.js - 使用填充方法在 sails mongo 中进行深度关联?

sql-server - Sails.js 和 SQL Server 数据库提供程序

mongodb - SailsJS 部署到 Heroku,连接到 Mongolabs MongoDB

sql-server - 如何使用 mssql 配置 sequelize?