- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 node.js javascript 中遇到了一个神秘的问题。我正在记录 Node.js 中的 row
对象,该对象类似于 { 'email': '15', SurveyLink: 'hghgh', name: 'LOO' } 。您可以看到该电子邮件周围有引号。我在处理这把 key 时遇到问题。我在 jsbin 中尝试了相同的代码,它工作正常,但它导致了 node.js javascript 中的问题。 https://jsbin.com/curirikoxo/edit?html,console,output我试图以这样的方式对 html 进行更改,即对于 {{+key+}}
的每次出现,我都想将其更改为该键的对象值。它在 jsbin 中工作正常,但是当我在 node.js javascript 中运行相同的代码时,html 中的 {{email}} 不会被其值替换。你能告诉我这可能是什么原因吗?
我尝试过诸如 JSON.stringify()
对象,然后再次尝试 JSON.parse()
对象,但结果没有发生任何影响。我觉得在 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]);
}
你能告诉我为什么这种情况发生在node.js javascript中但在jsbin中工作正常吗?您还能建议我一些克服它的方法吗?
更新 1:正在从 firestore 接收此行对象。我找不到为什么只有电子邮件键在行对象中带有引号的原因。另外,我想分享 firestore 中的所有行都是从存储在 firebase 存储上的 csv 文件写入的,并使用 papaparse
模块进行解析。此电子邮件是 csv 的第一列,之前 name
是 csv 中的第一列,当时 name 键导致了问题。当我通过删除 email
键从 firestore 控制台更新文档并使用相同的值再次写回时,我的函数给出了正确的结果,并且在这两种情况下 email
键的外观firestore 是相同的,即 firestore 控制台中的 email
字段上不显示引号。
Update-2:我正在添加一个屏幕截图,显示在云 Firestore 中删除和读取具有以下相同值的 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
最佳答案
问题似乎出在格式错误的数据源上,在您的情况下是 CSV 文件。因此,在数据库中 email
键以 BOM 字符开头。
最简单的解决方法是从数据库中获取对象后“清理”对象。
例如,您可以使用函数:
function cleanUp(obj) {
const keys = Object.keys(obj);
return keys.reduce((acc, key) => {
const value = obj[key];
const cleanKey = key.charCodeAt(0) === 0xFEFF ? key.substr(1) : key;
acc[cleanKey] = value;
return acc;
}, {});
}
您可以像这样使用它:
function replaceVariablesWithDataInTemplate(html,obj) {
const row = cleanUp(obj);
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));
html = html.replace(new RegExp(match, 'g'), row[key]);
}
}
关于Javascript 对象在 Node.js 中行为神秘,但在 jsbin 中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54383382/
我想在 scilab 中绘制 limacon,我有这个方程需要处理: 我知道r>0和l>0 当我编译以下代码时,我在第 5 行收到此错误: Inconsistent row/column dimens
我试图更好地了解行和行集在 PeopleCode 中的用途?我读完了PeopleBooks,但仍然觉得我没有很好的理解。我希望对这些与应用程序引擎程序相关的内容有更多的了解。也许通过一个例子可能会有所
我有 4 列的行,每列都有一个标题和一些文本。大多数列都有相似数量的文本,将其列中的按钮向下按以匹配其余列。但是,一列的文本较少,并且没有将按钮向下推得足够远。 有没有办法将按钮对齐到行的底部?我想实
我有这个模型 summary = models.TextField() 但我只想有 4 行和 15 列。 此外,如果我这样做,我是否需要重新安装数据库。 最佳答案 TextField
我想在 iPhone 中创建 SSL 服务器套接字的客户端,但我在 iPhone 中找不到任何 API。我有带密码的有效证书文件 最佳答案 你看过OpenSSL了吗? ? 关于iphone - iPh
For Each cell In sheets(1).Range("A50:A606") For Each cell2 In sheets(2).Range("EX2:ACB2") cell2.
这是我的矩阵 [,1] [,2] M -1 -5 T 8 -4 W -3 9 Th
我有一个全局char *在运行时,重新声明为指向声明为 way 的二维数组的指针。 : char (*A)[N][M] = malloc(sizeof(char[BUF_16][N][M])); 然后
我是一名优秀的程序员,十分优秀!