我目前有一个cron作业设置,它运行Node.js脚本。 Node.js脚本使用dotenv包来读取具有一些API密钥的.env
文件。
当我从命令行运行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
文件位于同一级别。
使用来自用户crontab -e
的michaellee
设置cron作业,该用户是在Ubuntu上拥有文件的用户。
我只是改变dotenv配置的路径,它对我有用
const dotenv = require('dotenv');
dotenv.config({ path: __dirname + '/../.env' });
我认为从.env
文件中取出内容并将它们加载到JSON文件中会不那么令人头疼。然后,您可以只需require
JSON文件并加载数据。每个&不需要任何插件,它将无缝地与Cron一起工作。