您如何获得运行 Node.js 脚本的 cron 作业以从 .env 文件读取变量?

mic*_*lee 5 javascript ubuntu cron environment-variables node.js

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

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

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

00 05 * * * /home/michaellee/.nvm/versions/node/v6.10.0/bin/node /home/michaellee/index.js >> /home/michaellee/output.log
Run Code Online (Sandbox Code Playgroud)

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

cron 作业是使用crontab -efrom user设置的michaellee,该用户是在 Ubuntu 上拥有这些文件的用户。

小智 8

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

const dotenv = require('dotenv');    
dotenv.config({ path: __dirname + '/../.env' });
Run Code Online (Sandbox Code Playgroud)


Col*_*Cox 1

.env我认为从文件中取出内容并将其加载到 JSON 文件中会不会那么麻烦。然后,您可以只加载requireJSON 文件并加载数据。每个都不需要任何插件,并且可以与 Cron 无缝协作。