提问人:Deshy Dan 提问时间:10/25/2023 最后编辑:AzeemDeshy Dan 更新时间:10/25/2023 访问量:83
环境变量未正确加载到 Node.js 应用中的“process.env”中
Environment variable not loading correctly into 'process.env' in a Node.js app
问:
我正在尝试使用GitHub Actions为我的Node.js应用程序设置环境变量。但是,当我运行工作流时,应用程序似乎没有正确读取变量,因为它返回了“无效令牌”错误。此外,我想知道如何使用文件在 GitHub Actions 中设置此变量。.env
工作流程如下:
name: Pay and Connect Voucher Request
on:
schedule:
- cron: '00 20 * * 1-5'
jobs:
request:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: "18.15"
- name: Install Dependencies
run: npm install
- name: Setting the environment variables
run: |
echo "AUTHORIZATION_TOKEN=$AUTHORIZATION_TOKEN" >> $GITHUB_ENV
env:
AUTHORIZATION_TOKEN: ${{ secrets.AUTHORIZATION_TOKEN }}
- name: Run Program
run: npm start
这是我运行的代码:src/index.ts
import axios from "axios";
import dotenv from "dotenv";
dotenv.configDotenv();
const requestURL: string =
"https://uct.api.getslideapp.com/2/connect/vouchers/issue/";
const authorizationToken = process.env.AUTHORIZATION_TOKEN;
async function sendRequest() {
try {
const { data, status } = await axios.post(
requestURL,
{},
{
headers: {
"Content-Type": "application/json",
Origin: "https://app.payandconnect.co.za",
Referer: "https://app.payandconnect.co.za/u/vouchers",
Authorization: authorizationToken,
},
}
);
} catch (error) {
if (axios.isAxiosError(error)) {
console.log("message: ", error.response?.data);
} else {
console.log("unexpected error: ", error);
}
}
}
sendRequest();
这是我收到的错误:
> [email protected] start
> ts-node src/index.ts
TOKEN***
message: { status: 'error', message: 'Token is invalid.' }
答:
1赞
ahmed
10/25/2023
#1
根据提供的信息,使用 GitHub Actions 为 Node.js 应用程序设置环境变量时,您似乎遇到了两个问题。第一个问题是应用程序未正确读取变量,导致“无效令牌”错误。第二个问题是,您想知道如何使用 .env 文件在 GitHub Actions 中设置此变量。
为了解决第一个问题,似乎在 GitHub Actions 工作流中未正确设置环境变量。这可能会导致应用程序尝试读取变量时出现“无效令牌”错误。是否已确认在 GitHub 存储库机密中正确设置了机密?AUTHORIZATION_TOKEN
AUTHORIZATION_TOKEN
现在,关于第二个问题,要使用 .env 文件在 GitHub Actions 中设置变量,您可以使用包从 .env 文件加载变量。但是,我注意到您的代码中有一个小错别字,您使用了 .请更新此行,以便从 .env 文件正确加载变量。dotenv
dotenv.configDotenv()
dotenv.config()
dotenv.config()
您是否尝试过进行这些更改,看看它们是否解决了您面临的问题?如果您需要进一步的帮助,请告诉我。
评论
0赞
Deshy Dan
10/27/2023
感谢您的贡献。在对问题进行故障排除时,我注意到当我登录到获取 API 调用的网站时,令牌有效。但是,当我关闭网站并单独运行工作流时,令牌将失效。我怀疑这个问题可能与标头有关。你对如何从那里解决它有什么建议吗?
评论
AUTHORIZATION_TOKEN
$GITHUB_ENV
env
env
$GITHUB_ENV