我是JavaScript新手,遇到了瓶颈。我正在编写我的第一个“真实的的”电子应用程序,希望通过sftp连接。(更具体地说,是ssh 2-sftp-client)当我像下面这样设置连接时:
sftp.connect({
host: '192.168.76.173',
port: '22',
username: 'Backup',
password: 'PasswordInPlainText'
}).then(() => {
return sftp.list('/Backups/Server');
}).then(data => {
console.log(data, 'the data info');
}).catch(err => {
console.log(err, 'catch error');
});
一切都像一个魅力。但是当我试图在一个.env文件中“隐藏”我的凭据时:
sftp.connect({
host: process.env.HOST,
port: process.env.PORT,
username: process.env.USERNAME,
password: process.env.PASSWORD
}).then(() => {
return sftp.list('/Backups/Server');
}).then(data => {
console.log(data, 'the data info');
}).catch(err => {
console.log(err, 'catch error');
});
我收到错误消息:
错误:连接:获取连接:所有配置的身份验证方法均失败
我查过了
console.log("Host to connect: "+ process.env.HOST)
,正确的输出为:
要连接的主机:192.168.76.173
.env文件的内容为
HOST='192.168.76.173'
PORT='22'
USERNAME='Backup'
PASSWORD='PasswordInPlainText'
这是我第一次使用环境变量,所以我猜我误解了什么,或者JavaScript属性不能用字符串这样定义。
1条答案
按热度按时间xqkwcwgp1#
您的问题是默认情况下NodeJS不支持
.env
文件,并且您可能已经有一些env变量具有相同的名称和不同的值(可能在系统中定义)。您可以使用像
dotenv
这样的NPM包,也可以自己解析文件的内容。你也可以这样测试它: