У меня таинственная проблема в javascript для node.js. Я регистрирую row
объект, который выглядит как {'email': '15', surveyLink: 'hghgh', name: 'LOO'} в node.js. Вы можете видеть, что в письме есть кавычки. У меня проблема с этим ключом. Я попробовал тот же код в jsbin, и он работает нормально, но это вызывает проблему в javascript node.js. https://jsbin.com/curirikoxo/edit?html,console,output
Я пытаюсь внести изменения в HTML таким образом, чтобы при каждом появлении {{+key+}}
я хотел изменить его на значение объекта для этого ключа. Он отлично работает в jsbin, но когда я выполняю тот же код в javascript для node.js, {{email}} в html не заменяется его значением. Можете ли вы сказать мне, что может быть причиной этого?
Я пробовал такие вещи, как JSON.stringify()
объект, а затем снова JSON.parse()
объект, но никакого эффекта этого не происходит в результате. Я чувствовал, что ключ email
может иметь кавычки, подобные этому 'email'
, при использовании ключа в html.replace(new RegExp(match, 'g'), row[key])
, который может вызывать проблему, поэтому я проверил key.indexOf('\'')
, но журналы выдавали -1
. Я пробовал много других вещей, и я сошел с ума и чувствую разочарование по поводу этой глупой проблемы.
function replaceVariablesWithDataInTemplate(html,row){
let keys=Object.keys(row);
console.log(JSON.parse(JSON.stringify(row)));
for (var key of keys){
let match="{{"+key+"}}";
console.log(html.indexOf(key));
console.log(Object.keys(row).forEach(key => { console.log(key, '-',
key.charAt(0), ':', key.charCodeAt(0)); })); //update-3
html=html.replace(new RegExp(match, 'g'), row[key]);
}
Можете ли вы сказать мне, почему это происходит в javascript для node.js, но работает нормально в jsbin? Также можете ли вы предложить мне несколько способов его преодоления?
Обновление 1: этот объект строки получен из пожарного депо. Я не могу найти причину того, почему только ключ электронной почты имеет кавычки вокруг него в объекте строки. Также я хотел бы поделиться всеми строками в firestore, которые пишутся из файла csv, хранящегося в хранилище firebase, и анализируются с использованием модуля papaparse
. Это электронное письмо является первым столбцом csv, ранее name
был первым столбцом в csv, и в то время имя ключа вызывало проблему. Когда я обновляю документ из консоли firestore, удаляя ключ email
и записывая его снова с тем же значением, моя функция дает правильные результаты, и в обоих случаях способ, которым ключ email
выглядит в firestore, одинаков, то есть кавычки не отображаются email
поле в консоли пожарного депо.
Обновление-2: Я добавляю снимок экрана с тем, как выглядят журналы до и после удаления и чтения ключа email
с тем же значением ниже в облачном хранилище.
Обновление-3:
email - : 65279
surveyLink - s : 115
name - n : 110
undefined
email - : 65279
surveyLink - s : 115
name - n : 110
undefined
email - : 65279
surveyLink - s : 115
name - n : 110
undefined