我需要隐藏nodemailer用来推送公共存储库的用户名和密码。
现在,我被迫在没有包含此信息的文件的情况下对github进行推送;这是一个联系人文件,它创建一个对象" transporter",它本身包含这个私人信息......
然后,我的服务器上的应用程序连接到其github仓库以进行持续部署,它会导致部署崩溃,因为此文件丢失了......
我必须重新做一次推送,但这次直接到服务器,所以用这个着名的联系人文件来恢复网站。因此,持续部署变得毫无用处!
此外,因此,我无法对此文件进行版本化!
答案 0 :(得分:1)
使用配置文件,将其添加到.gitignore,然后手动将文件添加到服务器一次,或者使用环境变量/命令行参数。
您可以使用node.js访问环境变量,格式为:
process.env.ENV_VARIABLE
或
process.argv
是node.js
中的命令行参数数组答案 1 :(得分:0)
请与托管服务部门联系,了解使用密码的方法。例如,使用AWS,您注册了一个安全的电子邮件地址(我使用了gmail地址),然后使用安全密钥,您可以像这样添加服务器文件:
//Sends mail with submission forms
const transporter = nodemailer.createTransport(sesTransport({
accessKeyId: "",
secretAccessKey: "",
rateLimit: 5
}));
app.get('/send-mail',function(req,res){
const mailOptions = {
to : req.query.to,
from: req.query.to,
subject : "New email subject",
text : "New email text"
}
请注意,我是从安全电子邮件地址发送给自己的。然后我从那个地址转发到我希望电子邮件去的地方。您可以改为添加另一个安全地址,但AWS不会发送到未注册的地址。