Javascript 将knex与es6模块一起使用

Javascript 将knex与es6模块一起使用,javascript,ecmascript-6,node-modules,knex.js,Javascript,Ecmascript 6,Node Modules,Knex.js,我正在做一个完全基于ES6模块的项目,我在集成knex,尤其是knex CLI时遇到了一些困难 我能够使用knex(不使用CLI)实现以下功能: const config = { client: 'mysql2', connection: { host : "localhost", user : "tata", password : "tata", database : "tata", }, } const myknex = kn

我正在做一个完全基于ES6模块的项目,我在集成knex,尤其是knex CLI时遇到了一些困难

我能够使用knex(不使用CLI)实现以下功能:


 const config = {
  client: 'mysql2',

  connection: { 
    host : "localhost", 
    user : "tata",  
    password : "tata",  
    database : "tata",

  },
}

const myknex = knex(config )

export default myknex
但这不允许使用knex CLI

因此,我创建了一个包含.knex/knexfile.js文件和.knex/package.json文件的knexfile模块:

//knexfile.js
module.exports =  {

  development: {
    client: 'sqlite3',
    connection: {
      filename: './dev.sqlite3'
    },
    useNullAsDefault : true
  },

  production: {
    client: 'mysql2',  
    connection: { 
      host : "localhost", 
      user : "tata",  
      password : "tata",  
      database : "tata",

    },  
    migrations: {
      tableName: 'knex_migrations'
    }
  }

};
在那里,我可以将knexfile模块添加到我的项目中

"dependencies": {
    "knexfile": "file:./knex",
    ...
我可以毫无顾虑地导入配置

import knex from 'knex'
import knexfile from 'knexfile'

const myknex = knex(knexfile.developpement)
//const myknex = knex(knexfile.production)

export default myknex
但是我必须指定开发或生产,ENV不是像knex CLI管理的那样管理的

如何在ES6项目中更简单有效地使用knex和knex CLI?


提前感谢

您可以定义环境变量
节点_PROFILE=production
,以便CLI自动选择生产配置。如果愿意,可以在应用程序代码中使用相同的env变量,如下所示:

import knex from 'knex'
import knexfile from 'knexfile'

const myknex = knex(knexfile[process.env.NODE_PROFILE])

export default myknex
import knex from 'knex'
import knexfile from 'knexfile'

const myknex = knex(knexfile[process.env.NODE_PROFILE])

export default myknex