Различия в строковых значениях при сохранении в виде переменной .env и системной переменной

#javascript #node.js

#javascript #node.js

Вопрос:

Я играю с node.js приложение в первый раз, возится с простым приложением hello World и столкнулось со странной проблемой, которая для меня не имеет смысла.

У меня есть .env файл, в котором есть строка, содержащая символ «новой строки» в качестве одного из значений:

   foo="upndown"
  

У меня также есть системная переменная среды (я использую Windows 10), которая имеет то же значение:

введите описание изображения здесь

Затем я запускаю следующий код:

   const foo = process.env.foo;
  const bar = process.env.bar;

  console.log(foo);
  console.log(bar);

  const fooObj = {
    foo: process.env.foo
  };

  const barObj = {
    bar: process.env.bar
  };

  console.log(fooObj);
  console.log(barObj);
  

Результатом чего (в терминальном представлении в коде Visual Studio) является следующее:

 up
down
upndown
{ foo: 'upndown' }
{ bar: 'up\ndown' }
  

Я не понимаю, почему две строки обрабатываются по-разному, т. Е. почему в нем foo есть n при вставке в объект, но bar имеет \n в том же сценарии.

Почему символ ‘newline’ интерпретируется по-разному в двух экземплярах?

Ответ №1:

Как выглядит файл .env после добавления в него переменных env «foo» и «bar»?

Когда я добавил, как вы описали, я получаю ожидаемый вывод на консоль. PFB,

 up
down
up
down
{ foo: 'upndown' }
{ bar: 'upndown' }
  

Возможно, если вы сложите в первой строке и уменьшите во второй строке на изображении, показанном выше. Это должно работать так, как ожидалось.