来自 nodemailer 模板电子邮件的电子邮件中的额外孤立字符
Extra orphaned character in email from nodemailer template email
我正在使用 "nodemailer": "^6.5.0"
通过 HTML 模板发送电子邮件。一切正常,除了当我映射一个数组字段时,我在每个项目后得到一个额外的 ,
字符,我无法弄清楚它来自哪里。
这是直接从 Gmail 中的 Chrome 检查器复制的呈现电子邮件中的 HTML 元素:
<div>
<p><b>Brad Stewart 11-03-21 15:26:</b> Another note...</p>
,
<p><b>Brad Stewart 11-03-21 15:44:</b> And another note ...</p>
,
<p><b>Brad Stewart 14-03-21 13:07:</b> test again</p>
,
<p><b>Brad Stewart 14-03-21 13:15:</b> And testing again...</p>
</div>
这是 HTML 模板的部分
`<p>
<b>Notes:</b>
<div>
${task.notes
? task.notes.map(
(note) =>
`<p><b>- ${note.created_by_name} ${moment(note.date)
.tz('Australia/Perth')
.format('DD-MM-YY HH:mm')}:</b> ${note.note}</p>`
)
: '-'
}
</div>
</p>`
感谢您提供删除这些孤立字符的任何帮助或想法。
通过调用Array.prototype.toString
since it's inside template literals将数组转换为字符串。 toString
方法 returns 数组元素以逗号连接为字符串。
来自docs,
JavaScript calls the toString
method automatically when an array is to be represented as a text value or when an array is referred to in a string concatenation.
const arr = ['Note 1', 'Note 2', 'Note 3']
console.log(`Notes: ${arr}`)
console.log(arr.toString())
您可以使用 Array.prototype.join
将其显式转换为字符串。
task.notes
.map(
(note) =>
`<p><b>- ${note.created_by_name} ${moment(note.date)
.tz('Australia/Perth')
.format('DD-MM-YY HH:mm')}:</b> ${note.note}</p>`
)
.join('')
我正在使用 "nodemailer": "^6.5.0"
通过 HTML 模板发送电子邮件。一切正常,除了当我映射一个数组字段时,我在每个项目后得到一个额外的 ,
字符,我无法弄清楚它来自哪里。
这是直接从 Gmail 中的 Chrome 检查器复制的呈现电子邮件中的 HTML 元素:
<div>
<p><b>Brad Stewart 11-03-21 15:26:</b> Another note...</p>
,
<p><b>Brad Stewart 11-03-21 15:44:</b> And another note ...</p>
,
<p><b>Brad Stewart 14-03-21 13:07:</b> test again</p>
,
<p><b>Brad Stewart 14-03-21 13:15:</b> And testing again...</p>
</div>
这是 HTML 模板的部分
`<p>
<b>Notes:</b>
<div>
${task.notes
? task.notes.map(
(note) =>
`<p><b>- ${note.created_by_name} ${moment(note.date)
.tz('Australia/Perth')
.format('DD-MM-YY HH:mm')}:</b> ${note.note}</p>`
)
: '-'
}
</div>
</p>`
感谢您提供删除这些孤立字符的任何帮助或想法。
通过调用Array.prototype.toString
since it's inside template literals将数组转换为字符串。 toString
方法 returns 数组元素以逗号连接为字符串。
来自docs,
JavaScript calls the
toString
method automatically when an array is to be represented as a text value or when an array is referred to in a string concatenation.
const arr = ['Note 1', 'Note 2', 'Note 3']
console.log(`Notes: ${arr}`)
console.log(arr.toString())
您可以使用 Array.prototype.join
将其显式转换为字符串。
task.notes
.map(
(note) =>
`<p><b>- ${note.created_by_name} ${moment(note.date)
.tz('Australia/Perth')
.format('DD-MM-YY HH:mm')}:</b> ${note.note}</p>`
)
.join('')