You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EJS开发时snippet字段拆分长段落换行输入触发报错 求解决方案

问题原因

你的报错属于JavaScript语法错误,和EJS本身无关联:JavaScript 中使用单引号(')、双引号(")包裹的普通字符串不支持直接跨行编写,你拆分snippet字段的文本时直接在单引号字符串内换行了,不符合JS语法规范,因此触发报错。

解决方案

这里提供3种常用的修复方式,优先推荐第一种:

  • 方案1:使用ES6模板字符串(反引号`包裹)
    模板字符串原生支持跨行书写,也不需要额外转义字符串内的单引号,是最便捷的方案:
app.set('view engine','ejs')

app.get('/', (req,res)=>{
    const blogs =[
        {
            title: '托马斯·桑卡拉(布基纳法索)',
            // 把单引号换成反引号`即可
            snippet: `本月初,布基纳法索首都法院起诉前总统布莱斯·孔波雷,指控他参与1987年10月15日谋杀战友托马斯·桑卡拉的事件。`,
            author: '乔瑟琳·博奇博·姆普萨',
            createdAt: Date.now(),
        }
    ]
    res.render('index',{blogs: blogs})
})
  • 方案2:单引号字符串加换行转义符
    如果要保留单引号写法,可以在每一行的末尾加反斜杠\转义换行符,注意反斜杠后面不能有多余空格:
snippet: '本月初,布基纳法索首都法院起诉前总统布莱斯·孔波雷,指控他参与\
         1987年10月15日谋杀战友托马斯·桑卡拉的事件。',
  • 方案3:字符串拼接
    把每一行单独用单引号包裹,用+号拼接成完整字符串:
snippet: '本月初,布基纳法索首都法院起诉前总统布莱斯·孔波雷,指控他参与' +
         '1987年10月15日谋杀战友托马斯·桑卡拉的事件。',

内容的提问来源于stack exchange,提问作者Jocelyne B. M'pusa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:57:03