将所有凭据放入文件 .json
Put all credential to file .json
我是 Javascript 的新人,我仍然对 javascript 和使用 json 文件感到困惑。我在我的一个办公室项目中工作,关于发送消息,我已经完成了后端和前端的所有代码,但是当我的项目负责人审查代码时,他说要将所有凭证归档 json。要发送消息/邮件,我使用来自 node.js
的 nodemailer
这是我必须放入 json 文件中的凭据
const transporter = mail.createTransport({ //unresolved
service: 'Gmail',
host: 'smtp.gmail.com',
auth: {
user: 'no.replyxx@xx.org',
pass: 'xxxxxx'
}
});
我已经把它放到了json文件中,但是当我在我的javascript文件中调用它时,我不知道怎么调用它,我尝试导入一个json 文件,但我只是得到了它的错误有人可以帮助我,我的问题恰恰是我如何将凭据写入 json 文件以及如何在我的 javascript 中使用它?谢谢
首先,您可以使用名为 fs.readFileSync(filePath)
的 fs
库方法导入文件的内容。
然后,您使用 JSON.parse(content)
方法将内容解析为 JSON 对象。
从那里,您可以将 JSON 内容作为一个对象,现在您可以在 createTransport
方法调用中使用它。
我只想补充一点,我建议使用更安全的 .env 文件。
但是要回答你的问题,
因为我假设你正在使用 ReactJS,你可以这样做:
config.js
export default const config = {
service: 'Gmail',
host: 'smtp.gmail.com',
auth: {
user: 'no.replyxx@xx.org',
pass: 'xxxxxx'
}
}
然后只需导入即可使用
import config from './config.js'
function myFunction()
{
const transporter = mail.createTransport(config);
}
您应该考虑使用 dotenv
你可以这样使用它
// this will find the .env file at the root of your project
// and parse the entries into key/value pairs on the `process.env` object
require('dotenv').config()
const transporter = mail.createTransport({ //unresolved
service: 'Gmail',
host: 'smtp.gmail.com',
auth: {
user: process.env.MAIL_USER,
pass: process.env.MAIL_PASS
}
});
在项目的根目录下创建一个 .env
文件
// .env
MAIL_USER=no.replyxx@xx.org
MAIL_PASS=secret-password
此外,您应该确保这不会提交到您的版本控制系统。
如果您使用的是 git,请创建一个 .gitignore
并确保您有 .env
的条目
// .gitignore
.env
首先,JSON中没有const
。 const
来自JS。如果您想将凭据保存到 JSON 文件,它将包含如下内容:
{
"service": "Gmail",
"host": "smtp.gmail.com",
"auth": {
"user": "no.replyxx@xx.org",
"pass": "xxxxx"
}
}
此外,它需要双引号而不是单引号。
在这之后你需要做的就是需要它
const credentials = require('./jsonCredentials.json');
我是 Javascript 的新人,我仍然对 javascript 和使用 json 文件感到困惑。我在我的一个办公室项目中工作,关于发送消息,我已经完成了后端和前端的所有代码,但是当我的项目负责人审查代码时,他说要将所有凭证归档 json。要发送消息/邮件,我使用来自 node.js
的 nodemailer这是我必须放入 json 文件中的凭据
const transporter = mail.createTransport({ //unresolved
service: 'Gmail',
host: 'smtp.gmail.com',
auth: {
user: 'no.replyxx@xx.org',
pass: 'xxxxxx'
}
});
我已经把它放到了json文件中,但是当我在我的javascript文件中调用它时,我不知道怎么调用它,我尝试导入一个json 文件,但我只是得到了它的错误有人可以帮助我,我的问题恰恰是我如何将凭据写入 json 文件以及如何在我的 javascript 中使用它?谢谢
首先,您可以使用名为 fs.readFileSync(filePath)
的 fs
库方法导入文件的内容。
然后,您使用 JSON.parse(content)
方法将内容解析为 JSON 对象。
从那里,您可以将 JSON 内容作为一个对象,现在您可以在 createTransport
方法调用中使用它。
我只想补充一点,我建议使用更安全的 .env 文件。
但是要回答你的问题, 因为我假设你正在使用 ReactJS,你可以这样做:
config.js
export default const config = {
service: 'Gmail',
host: 'smtp.gmail.com',
auth: {
user: 'no.replyxx@xx.org',
pass: 'xxxxxx'
}
}
然后只需导入即可使用
import config from './config.js'
function myFunction()
{
const transporter = mail.createTransport(config);
}
您应该考虑使用 dotenv
你可以这样使用它
// this will find the .env file at the root of your project
// and parse the entries into key/value pairs on the `process.env` object
require('dotenv').config()
const transporter = mail.createTransport({ //unresolved
service: 'Gmail',
host: 'smtp.gmail.com',
auth: {
user: process.env.MAIL_USER,
pass: process.env.MAIL_PASS
}
});
在项目的根目录下创建一个 .env
文件
// .env
MAIL_USER=no.replyxx@xx.org
MAIL_PASS=secret-password
此外,您应该确保这不会提交到您的版本控制系统。
如果您使用的是 git,请创建一个 .gitignore
并确保您有 .env
// .gitignore
.env
首先,JSON中没有const
。 const
来自JS。如果您想将凭据保存到 JSON 文件,它将包含如下内容:
{
"service": "Gmail",
"host": "smtp.gmail.com",
"auth": {
"user": "no.replyxx@xx.org",
"pass": "xxxxx"
}
}
此外,它需要双引号而不是单引号。
在这之后你需要做的就是需要它
const credentials = require('./jsonCredentials.json');