I recently came across this problem in my project and the usual google search/Stackoverflow readings lead to partial and confusing solutions.
So iā...
For further actions, you may consider blocking this person and/or reporting abuse
When the app starts up it's crucial to first check whether all config parameters got a value (explicitly from an environment variables or via a default value).
This "fail early" behavior is important e.g. for apps deployed via kubernetes. If there is a problem the app (container/pod) should signal en error to kubernetes on start-up. So the attempt to deploy a new version fails and will be rolled back to the previous version.
Your example code would try to send a request to an empty url getting an inherited error w/o the chance to handle the root cause automatically.
Please can you throw more light on this.. i am experiencing a similar issue. i have a react app deployed to kubernetes that's not reading the env variable
Our app reads environment variables at start-up like this:
const envVarReader = new EnvVarReader();
export const envVar = {
UserBaseUrl: envVarReader.getURL('USER_SERVICE_URL'),
EtlUrl: envVarReader.getURL('ETL_SERVICE_URL')
}
envVarReader.checkVariables() // will throw an exception in case of errors
// with a message containing descriptions for all found problems
I wrote a small class 'EnvVarReader' which reads from 'process.env', checks and transforms the string values to the expected type. A missing or malformed URL will e.g. result in an exception thrown by 'checkVariables' at start-up.
Project time pressure kept me from making class 'EnvVarReader' available on github until now. But it seems I should take my time to just do that now.
Thanks for the clarity
mick62
Can you share with us how you built envVarReader ?
Thanks for sharing! Last year I was looking for something like this and it would have helped!
Good idea, but doesn't work for me. Fields always stay empty. Making fields to functions workd though.
You have a get method here, how can we add a create method
like this
export const API = axios.create({ baseURL: baseUrl });
Thank you, you helped me
Im getting: npm ERR! code EINVALIDTAGNAME
Thank you so so much, "google search/Stackoverflow readings lead to partial and confusing solutions" the same happened to me.
For the people still with problems configuring dotenv, in its official repository is a guide just for typescript:
github.com/motdotla/dotenv/tree/ma...