gpt4 book ai didi

javascript - 将 knex 与 es6 模块一起使用

转载 作者:行者123 更新时间:2023-12-04 15:32:58 25 4
gpt4 key购买 nike

我正在做一个完全基于 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'
}
}

};
//package.json
{
"name": "knexfile",
"version": "1.0.0",
"description": "",
"main": "knexfile.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}

在那里我可以在我的项目中添加一个 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?

先感谢您

最佳答案

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

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

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

export default myknex

关于javascript - 将 knex 与 es6 模块一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60811912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com