尝试在我的项目中使用 .env 文件
Trying to use a .env file inside my project
我有一个没有错误的后端,所以我试图将它发送到 Heroku Server,因为这是我第一次尝试使用 Heroku,我选择了一个免费的数据库(JawsDB MySQL ), 但试图将我的本地数据库 MySQL 更改为 Heroku 上的数据库,我的 .env 文件不再工作了,我已经尝试在那里更改几项内容,但我总是遇到与我的 .env 相关的错误文件
.env:6
DB_HOST=qao3ibsa7hhgecbv.cbetxkdyhwsb.us-east-1.rds.amazonaws.com,
在 MySQL workbench 上安装我的数据库我没有收到任何错误,但我找不到在我的 .env 文件中设置它的方法
这是我的 .env 文件:
require('dotenv').config();
module.expots = {
authSecret: 'myauthsecret',
db: {
DB_HOST=dbhost.us-east-1.rds.amazonaws.com,
DB_USER=dbuser,
DB_PASSWORD=dbpassword
DB_PORT=3306,
DB_DATABASE=dbname
}
}
我的授权密码被 passport.js
使用
这里是我的 knexfile.js 我设置数据库凭据的地方:
const { db } = require('./.env');
module.exports = {
client: 'mysql2',
connection: {db,
mysqlhost: process.env.DB_HOST,
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
port: process.env.DB_PORT,
database: process.env.DB_DATABASE
},
pool: {
min: 2,
max: 10
},
migrations: {
tableName: 'knex_migrations'
}
};
我不知道这有什么问题,在我的本地机器上,我曾经像这样设置我的 .env:
module.exports = {
authSecret: 'sqt;n/eP-kX-(J#I#8WahB|uhx/i)^$aZ[ZD!PADRZ#Qn@^s;Sl]~wI?3ADxF',
db: {
host: '127.0.0.1',
port: '3306',
user: 'root',
password : 'aPassword',
database : 'database'
}
}
它在工作,现在我不知道我应该怎么做才能让它在 Heroku 上与我的数据库一起工作...
您收到的错误是因为您将 .env
作为 JS 代码加载,而 db
对象不是有效的 JS。有效的JS应该是这样的:
module.expots = {
authSecret: 'myauthsecret',
db: {
DB_HOST: "dbhost.us-east-1.rds.amazonaws.com",
DB_USER: "dbuser",
DB_PASSWORD: "dbpassword",
DB_PORT: 3306,
DB_DATABASE: "dbname",
}
}
也就是说,对于 .env
文件应该有什么以及如何使用它存在误解。正确的 .env
内容应该是:
# .env
# Replace with the correct values
DB_HOST=dbhost.us-east-1.rds.amazonaws.com
DB_USER=dbuser
DB_PASSWORD=dbpassword
DB_PORT=3306
DB_DATABASE=dbname
然后在您的 knexfile.js
中:
// This loads the .env variables into the process.env
require('dotenv').config();
module.exports = {
client: 'mysql2',
connection: {
host: process.env.DB_HOST,
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
port: process.env.DB_PORT,
database: process.env.DB_DATABASE
},
...
};
我有一个没有错误的后端,所以我试图将它发送到 Heroku Server,因为这是我第一次尝试使用 Heroku,我选择了一个免费的数据库(JawsDB MySQL ), 但试图将我的本地数据库 MySQL 更改为 Heroku 上的数据库,我的 .env 文件不再工作了,我已经尝试在那里更改几项内容,但我总是遇到与我的 .env 相关的错误文件
.env:6
DB_HOST=qao3ibsa7hhgecbv.cbetxkdyhwsb.us-east-1.rds.amazonaws.com,
在 MySQL workbench 上安装我的数据库我没有收到任何错误,但我找不到在我的 .env 文件中设置它的方法 这是我的 .env 文件:
require('dotenv').config();
module.expots = {
authSecret: 'myauthsecret',
db: {
DB_HOST=dbhost.us-east-1.rds.amazonaws.com,
DB_USER=dbuser,
DB_PASSWORD=dbpassword
DB_PORT=3306,
DB_DATABASE=dbname
}
}
我的授权密码被 passport.js
使用这里是我的 knexfile.js 我设置数据库凭据的地方:
const { db } = require('./.env');
module.exports = {
client: 'mysql2',
connection: {db,
mysqlhost: process.env.DB_HOST,
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
port: process.env.DB_PORT,
database: process.env.DB_DATABASE
},
pool: {
min: 2,
max: 10
},
migrations: {
tableName: 'knex_migrations'
}
};
我不知道这有什么问题,在我的本地机器上,我曾经像这样设置我的 .env:
module.exports = {
authSecret: 'sqt;n/eP-kX-(J#I#8WahB|uhx/i)^$aZ[ZD!PADRZ#Qn@^s;Sl]~wI?3ADxF',
db: {
host: '127.0.0.1',
port: '3306',
user: 'root',
password : 'aPassword',
database : 'database'
}
}
它在工作,现在我不知道我应该怎么做才能让它在 Heroku 上与我的数据库一起工作...
您收到的错误是因为您将 .env
作为 JS 代码加载,而 db
对象不是有效的 JS。有效的JS应该是这样的:
module.expots = {
authSecret: 'myauthsecret',
db: {
DB_HOST: "dbhost.us-east-1.rds.amazonaws.com",
DB_USER: "dbuser",
DB_PASSWORD: "dbpassword",
DB_PORT: 3306,
DB_DATABASE: "dbname",
}
}
也就是说,对于 .env
文件应该有什么以及如何使用它存在误解。正确的 .env
内容应该是:
# .env
# Replace with the correct values
DB_HOST=dbhost.us-east-1.rds.amazonaws.com
DB_USER=dbuser
DB_PASSWORD=dbpassword
DB_PORT=3306
DB_DATABASE=dbname
然后在您的 knexfile.js
中:
// This loads the .env variables into the process.env
require('dotenv').config();
module.exports = {
client: 'mysql2',
connection: {
host: process.env.DB_HOST,
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
port: process.env.DB_PORT,
database: process.env.DB_DATABASE
},
...
};