我都快疯了。我有我的app.js
创建一个连接到mysql。它可以像这样工作:
app.js
const path = require('path')
const hbs = require('hbs')
const express = require('express')
const mysql = require('mysql')
const app = express()
const port = process.env.PORT || 3000
const db = mysql.createConnection({
host: "localhost",
user: "root",
password: "password",
database: "test"
});
db.connect((error) => {
if(error) throw error
console.log("MYSQL Connected")
})
但是这个不行:
app.js
const path = require('path')
const hbs = require('hbs')
const express = require('express')
const dotenv = require('dotenv')
const mysql = require('mysql')
dotenv.config({ path: './.env' })
const app = express()
const port = process.env.PORT || 3000
const db = mysql.createConnection({
host: process.env.HOST,
user: process.env.USER,
password: process.env.PASSWORD,
database: process.env.DATABASE
});
db.connect((error) => {
if(error) throw error
console.log("MYSQL Connected")
})
.env
DATABASE = test
HOST = localhost
USER = root
PASSWORD = password
它识别我存储在我的。env文件中的值,因为我的IDE在我输入它们时显示了我的值,并且只要用户&密码是在app.js中输入的(但不是主机和数据库),它可以工作。
我是MySQL的新手,从来没有使用过它,我在Windows上。因此,如果我需要执行一些命令行,您能指定我应该在哪个终端中键入它们吗?
有人能帮帮我吗?
谢谢你!
找到答案了
由于某些原因,这个路径:
dotenv.config({ path: './.env' })
不工作。我必须这样做:
const path = require('path')
const dotenv = require('dotenv')
dotenv.config({ path: path.join(__dirname, './.env') })
我通过在变量(process.env.)上使用console.log()
找到了这个解决方案。主机等等……)。
结论:永远console.log()
你的东西。