如何让运行Node.js脚本的cron作业从.env文件中读取变量?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (89)

我目前有一个cron作业设置,它运行Node.js脚本。Node.js脚本使用dotenv包来读取.env具有一些API密钥的文件。

当我从命令行运行Node.js脚本时,从.env文件中正确读取变量并使用我的Node.js脚本。

但是当cron运行Node.js脚本时,我试图设置的变量返回undefined。

00 05 * * * /home/michaellee/.nvm/versions/node/v6.10.0/bin/node /home/michaellee/index.js >> /home/michaellee/output.log

.env文件与文件位于同一级别index.js

cron作业是使用crontab -e用户设置的michaellee,该用户是在Ubuntu上具有文件的同一用户。

提问于
用户回答回答于

我觉得把里面的东西拿出来就不那么头痛了.env文件并将它们加载到JSON文件中。然后,你可以requireJSON文件并在数据中加载。每个插件都不需要任何插件,它可以无缝地工作w/cron。

用户回答回答于

我只是更改dotenv配置上的路径,它对我起了作用。

const dotenv = require('dotenv');    
dotenv.config({ path: __dirname + '/../.env' });

扫码关注云+社区

领取腾讯云代金券