你怎么得到运行Node.js脚本的cron作业从.env文件中读取变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你怎么得到运行Node.js脚本的cron作业从.env文件中读取变量?相关的知识,希望对你有一定的参考价值。

我目前有一个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 -emichaellee设置cron作业,该用户是在Ubuntu上拥有文件的用户。

答案

我只是改变dotenv配置的路径,它对我有用

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

我认为从.env文件中取出内容并将它们加载到JSON文件中会不那么令人头疼。然后,您可以只需require JSON文件并加载数据。每个&不需要任何插件,它将无缝地与Cron一起工作。

以上是关于你怎么得到运行Node.js脚本的cron作业从.env文件中读取变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 cron 作业执行 Node.js 脚本?

运行 cron 作业 (Node.js) 时如何在 Amazon Elastic Beanstalk 中设置环境变量?

当代码在其他文件中时如何运行 Cron 作业 - Node JS

在 Node.js 与 Cron 作业中设置间隔?

如何在Node.js中管理Cron作业

从命令行运行但不能通过 cron 运行时脚本运行良好