24

The secrete API key I want to store in my environment file for my express server is ignoring half of it as it contains a # symbol in the middle. I can't regenerate the key. And do not want it to be left unsequre

Fardeen Khan
  • 770
  • 1
  • 9
  • 20

2 Answers2

21

i do not think it's because of the # symbol. It is only treated as signaling a comment when encountered as first chartacter in a line... you can try this yourself. create a .env file with the following content:

a=#b
c="#d"
#e=f

now run `node -e 'console.log(require("dotenv").config())'

this will return:

{ parsed: { a: '#b', c: '#d' } }

Is there maybe a newline character somewhere?

Holger Will
  • 7,228
  • 1
  • 31
  • 39
  • 14
    Simply putting single quotes around the value did the trick. Thanks for your help. – Fardeen Khan Mar 09 '20 at 19:34
  • 3
    It is definitely the # symbol. I have the same problem. I have a PW and mid-way through it has a #. When I console log the environment variable in my server.js file it cuts the password right before hitting #. – santanaG Jul 10 '22 at 04:32
  • 1
    you are talking about an evironment variable this is about .env Files... – Holger Will Jul 13 '22 at 18:41
  • 4
    Yes, it is indeed the `#` symbol and needs single quotes or double quotes. – Anjan Biswas Nov 23 '22 at 08:46
0

I encountered the same problem. In the .env file # is working as a breaking point because it is used for comments. To avoid this and use # in your environment variable you can consider your environment variable as a string.


For example, if your variable in your .env file is SECRET_CODE= my#code then change it to SECRET_CODE= 'my#code'. This solved the problem in my Express app