这似乎应该可以工作,但是我遇到了一个非常奇怪的问题。我正在尝试将一些实用程序功能snakeToCamel
和camelToSnake
导入我的knexfile
中,以转换输入和输出。但是,我什至没有想要使用它们的原因,因为仅尝试在我的require
中knexfile
进行操作就可以使我导出{{ 1}}实例失败。
也就是说,在我导入index.js
的任何地方,我都会得到一个空对象而不是knex
实例。注释掉导入后,我将立即返回knex
实例。这是代码:
knex
这是我从中导出knex
的地方。在log语句中,始终定义//knexfile.js
require('dotenv').config({path: '../../.env'})
const {
snakeToCamel,
camelToSnake,
} = require('../utils/')
module.exports = {
client: process.env.DB_CONNECTION,
connection: {
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
},
migrations: {
directory: '../migrations',
},
pool: {
min: 0,
max: 9,
},
// wrapIdentifier: value => camelToSnake(value),
// postProcessResponse: result => Array.isArray(result) ?
result.map(row => snakeToCamel(row)) : snakeToCamel(result),
}
。
knex
我已经验证了我要导入的功能是否已定义,并且尝试对通过knex
从环境变量中引入的//index.js
const knex = require('knex')(require('./knexfile'))
console.log('at index:', knex);
module.exports = knex
的元素进行硬编码,但这似乎都不重要-当knexfile
中存在该导入时,dotenv
实例的使用者将看到一个空对象。这是怎么回事?