node.js应用不读取.env文件/linux aws ec2实例中的文件/变量
我是AWS的新手,我已经开始并配置了一个使用Linux的EC2实例。 我让服务人员自动启动该程序,并告诉它.env文件在哪里。 以下是我制作服务工作者文件
sudo vim /etc/systemd/system/nodeserver.service
i然后在该新创建的文件中粘贴了此文件
[Unit]
Description=My Node Server
After=multi-user.target
[Service]
ExecStart=/usr/bin/node /home/ec2-user/earmark-backend/dist/api/server.js
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=earmark-backend-server
User=ec2-user
EnvironmentFile=/home/ec2-user/earmark-backend/.env
[Install]
WantedBy=multi-user.target
以创建.env文件我运行了此命令, sudo vim/home/ec2-user/earmark-backend/.env
在.env文件中我粘贴了此代码
PLAID_CLIENT_ID=<env_var>
PLAID_SECRET=<env_var>
PLAID_ENV=sandbox
PLAID_PRODUCTS=auth,transactions
PLAID_COUNTRY_CODES=US,CA
PLAID_REDIRECT_URI=<env_var>
PORT=8080
URL=<env_var>
,然后当我通过sudo> sudo Systemctl start nodeserver.service 并提出一个请求,我获得了错误
“ typeError [err_http_invalid_header_value]:nuffalid value \“ nuffined \” for header \“ plaid-client-id \ id \ n \ n
,如果我使用我的服务器启动我的服务器,命令plaid_client_id =&lt; env_var&gt; plaid_secret =&lt; env_var&gt&gt; 。
变量
脚本
#!/usr/bin/env bash
cd /home/ec2-user/earmark-backend
npm i
npm run clean
npm run build
npm run start
。
I'm new to AWS and I've started and configured an EC2 instance with linux.
I made a service worker to auto start the program and told it where the .env file is.
Below is how I made the service worker file
sudo vim /etc/systemd/system/NodeServer.service
I then pasted this inside that newly created file
[Unit]
Description=My Node Server
After=multi-user.target
[Service]
ExecStart=/usr/bin/node /home/ec2-user/earmark-backend/dist/api/server.js
Restart=always
RestartSec=10
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=earmark-backend-server
User=ec2-user
EnvironmentFile=/home/ec2-user/earmark-backend/.env
[Install]
WantedBy=multi-user.target
To create the .env file I ran this commandsudo vim /home/ec2-user/earmark-backend/.env
inside the .env file I pasted this code
PLAID_CLIENT_ID=<env_var>
PLAID_SECRET=<env_var>
PLAID_ENV=sandbox
PLAID_PRODUCTS=auth,transactions
PLAID_COUNTRY_CODES=US,CA
PLAID_REDIRECT_URI=<env_var>
PORT=8080
URL=<env_var>
Then when I start the service worker via sudo systemctl start NodeServer.service
and make a request I get the error "TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value \"undefined\" for header \"PLAID-CLIENT-ID\"\n
However if I start my server with the command PLAID_CLIENT_ID=<env_var> PLAID_SECRET=<env_var> PLAID_ENV=sandbox ...(rest of env vars) node ./dist/api/server.js
it works and can read the env variables.
Anyone have any idea why it's not able to read my .env file?
Also, side question: I'd prefer to have my service worker ExecStart command run a bash script, but I'm not exactly sure how I'd setup the script. I have a file start.sh
and inside I have
#!/usr/bin/env bash
cd /home/ec2-user/earmark-backend
npm i
npm run clean
npm run build
npm run start
It's not working though, how would I properly format my .sh file to run those commands on start?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论