如何在Nodejs中读取环境variables?
我正在尝试通过docker撰写环境文件。
我的问题是我的代码只读取variables值的第一行。
我的test.env
NODE_ENV=development ## Not the actual key ## RSA_PUBLIC=-----BEGIN PUBLIC KEY----- CIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyRaUPVDIx3e1d/qadcNc D5TfmAfjCKlTajQPEitF8tNtQKRQc9yZqJjkNwtvctlxmkBmfot5dPqW/nAZhfse AAY5AKnAPAHrOLrzrGWvXE1NkjuONZq9cTqWludyZp7jH0md1q/D7shZMwL2hEee gaaM5CWH7nIZ6CASDA9K46NJYyoXw4/sZsUtuuKbUP3W1LlJcaBFIpRRKkv2dEdd ddqN8yHjkjKNtHi0UtRCjxA6dOuUdMvTiTHiycGwoC6sap0THF4lWHBZb/GXFaeD adce7iDq5bhbMNT3YfXHlq3MMMJSCJltnVS7DArij/Xf6vF/6chvlI4S9iIZNped FEEDAAEE -----END PUBLIC KEY-----
我的docker-compose
web: build: . env_file: - test.env //more
我能够读取我的app.js
文件中的NODE_ENV
console.log(process.env.NODE_ENV)
==>输出development
但是console.log(process.env.RSA_PUBLIC)
==>只输出-----BEGIN PUBLIC KEY-----
这是关键的第一行。
并使我的jwt令牌validation失败
PEM_read_bio_PUBKEY failed
我不知道如何解决这个问题。 任何人都可以帮助我吗? 非常感谢!
解决scheme可能会因您的操作系统的换行样式而有所不同,但是我通过将换行符replace为\ n (使您的密钥为单行string)来解决此问题,然后通过\ n将\ nreplace为\ n
process.env.RSA_PUBLIC.replace(/\\n/g, '\n')
两个想法:
-
你如何存储variables? 你直接使用process.env,还是像dotenv ?
-
您是否尝试存储没有
"-----BEGIN PUBLIC KEY-----"
和"-----END PUBLIC KEY-----"
行?
- 为什么kubelet无法从docker获取统计信息(错误500)?
- 从上游读取响应头时,XDebug无法打开远程debugging文件“/var/log/xdebug.log”
- OrientDB Studio不在Windows Server 2016的Docker容器中启动
- 哪里可以find我的话语输出?
- Docker:一个MySQL数据库的多个实例
- 系统日志驱动程序不能与泊坞窗撰写和麋鹿栈
- Docker的PHP开发环境(以及如何使用composer)
- 创build一个包含数组types的mongoose模型将会返回未定义的docker容器中的数据
- 通过dockerauthentication错误pymongo