Javascript knexfile.js不读取Dotenv变量
所以我正在尝试knexjs,第一个设置就像一个魔咒。我已经建立了连接,创建了数据结构,并在终端中运行了Javascript knexfile.js不读取Dotenv变量,javascript,node.js,knex.js,dotenv,Javascript,Node.js,Knex.js,Dotenv,所以我正在尝试knexjs,第一个设置就像一个魔咒。我已经建立了连接,创建了数据结构,并在终端中运行了$knex migrate:latest. 一切都很好。。。迁移的表显示在我的数据库中,再次运行迁移,并获得了已更新的 现在我遇到了一个问题:使用Dotenv。。。这是我的密码: require('dotenv').config(); module.exports = { development: { client: process.env.DB_C
$knex migrate:latest.
一切都很好。。。迁移的表显示在我的数据库中,再次运行迁移,并获得了已更新的
现在我遇到了一个问题:使用Dotenv。。。这是我的密码:
require('dotenv').config();
module.exports = {
development: {
client: process.env.DB_CLIENT,
connection: {
host: process.env.DB_HOST,
user: process.env.DB_ROOT,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
charset: process.env.DB_CHARSET
}
}
};
就我所知,它没有任何问题,当我通过节点运行脚本时,没有出现任何错误。
然后我想检查我是否仍然可以进行迁移,我得到以下错误:
错误:ER_访问被拒绝\u错误:用户“@”[MY IP]的访问被拒绝
(使用密码:是)
这一次,我只在.env
文件中使用相同的变量。但是当我看到错误时,没有从中加载任何内容,是的,knexfile.js
和.env
都在我的项目的根目录中:)我尝试的方法之一是在require('dotenv').config()中以不同的方式设置路径
但是它会从dotenv抛出一个错误,这意味着文件已经正确加载
有谁能帮我弄清楚这一点吗?经过反复试验,我终于找出了问题所在。我不知道是什么原因造成的,但不知怎么的,Knex的安装没有正确完成
I卸载并重新安装Knex(本地和全球)。然后,我首先在全局级别上安装了它,然后将其作为依赖项安装。之后,我再次初始化Knex($Knex init
),并从头开始
我想,但我仍然不知道为什么,因为我找不到任何关于它的信息,安装Knex的顺序很重要(或者对我来说很重要,我甚至不知道我第一次做错了什么)
另外
如果您是Knex新手,只是盲目地遵循随机教程/文章,只是为Knex创建一个新文件(即knexfile.js),Knex仍然可以工作,但其他包可能无法正确执行。这是我在找到的大多数文章中没有看到的,请阅读有关如何生成所需文件(迁移和种子)的文档。大多数文章都没有正确地介绍这些步骤
希望这是值得的改进建议:请发布用于运行脚本的命令行。它在那里:$knex migrate:latest
(添加了标记)请将我在github问题中建议的调试打印添加到这里。另外,我假设您既不是在docker中运行,也不是通过npm脚本运行,而是直接从命令行使用knex migrate:latest
?是的,我使用的是visual studio代码中的终端。调试打印没有添加任何信息。仍然感谢您的回复和建议:)