var util = require('util');
var str = util.format('%s/is/here', process.env.VAR);
Нет НПМ библиотеки необходимой. Если это должно быть частью пути или аналогичный, посмотрите на path.join:
var path = require('path');
var str = path.join(process.env.VAR, 'is', 'here');
path.join является родным и принимает во внимание платформу (преобразуется в обратную косую черту на окнах, forwardslash на Linux/OSX/и т.д.), и я настоятельно рекомендую вам использовать это вместо замены.
Если вы действительно (все еще крайне нежелательно) хотят использовать подстановку переменных, поскольку эта строка подается из другой системы, которая кодируется Perl, PHP или любой другой язык, который используют этот синтаксис, вы можете использовать что-то вроде этого :
str.replace(/\$[a-z\d_]+/ig, function (match) {
var sub = process.env[match.substring(1)];
return sub || match;
})
Обратите внимание, что это должно быть отполированы, чтобы обрабатывать все вариации ENV переменных, которые вы можете найти, в соответствии со стандартами. Возможно, не начинается с номера и т. Д.
Как можно создать функцию, которая сканирует строку для $ VAR и вызывает process.env.VAR таким образом? – George
'needNodeFunction' терпит неудачу, если есть перекрывающиеся переменные среды. I.E .: '$ VAR1/file' вернет' $ VAR' + '1' +'/file' в случае, если определены '$ VAR' и' $ VAR1'. – George
Вот почему я хотел бы найти модуль npm в первую очередь, а затем ** tinker ** с этим фрагментом :) –