Можно ли использовать строковые литералы в значениях process.env?

#javascript #create-react-app #dotenv

#javascript #create-react-app #dotenv

Вопрос:

Я хотел бы добавить переменные среды с параметрами. что-то вроде:

 URL= https://my-domain.com/test/${value}?code=7NqsdKgBKw
  

и вычислите значение в js.

 const value = Math.random();
fetch(process.env.URL);
  

как я могу получить тот же эффект, что и при использовании литералов?

 const value = Math.random();
fetch(`https://my-domain.com/test/${value}?code=7NqsdKgBKw`);
  

Комментарии:

1. Это Node.js ? Я предполагаю, что это так из-за process.env , но, кажется, неплохо убедиться. 🙂

2. это реакция, но ваш ответ хорошо работает и в браузере.

Ответ №1:

Для достаточно простых случаев (без экранирования, только одна переменная), Node.js имеет встроенный util.format с заполнителями в стиле printf, который приятный и легкий:

 URL=https://my-domain.com/test/%s?code=7NqsdKgBKw
  
 // ESM: import { format } from 'util';
const { format } = require('util');

const urlFormat = process.env.URL;

const value = Math.random();

fetch(format(urlFormat, value))