简体   繁体   中英

Nextjs environment variables not working in js pages

I am creating a nextjs website. In my js file, I am fetching API data and I am assigning the token via .env.local file. But when i tried to access .env variable that I have created, it's not returning anything. I mean, it returns empty/undefined .
My js file code:

export async function getStaticProps() {
    const response = await fetch(`https:/mywebsite.com?token=${process.env.PRAISES_TOKEN}`);
    const body = await response.json();
    console.log(body);
    
    return {
        props: {
            naats: body
        }
    }
}

.env.local

PRAISES_TOKEN=MY_TOKEN

My nextjs project version is 12 .
In my git bash, it returns like this, no value of variable:

https://website.com?token=

Update: The thing i have figured out is that when i assign any token/hash to env variable, then variable returns undefined. If i assign https url then variable works fine. So, i though to assign full url with token like https://website.com?token=jhasvdiasvdjkagdg8catscuas , but it doesn't work and returns undefined. Variable only works with https url values but without parameters. This is strange.

Can someone please help me with this issue? I don't wanna expose my token/api_token to browser/public.

Next.js will automatically expand variables $VAR inside of your.env* files, so you need to escape $ signs with \ , so if you token is $abcd$ef it should look like that: PRAISES_TOKEN=\$abcd\$ef

It is also good idea to wrap value with " quotes, because tokens also usually have other symbols like = and etc:

PRAISES_TOKEN="\$abcd\$ef"

More info

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM