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

如何在EJS中设置可选变量?

EJS模板处理可选变量的解决方案

问题场景

我需要在EJS模板中显示一个可选变量message,模板现有代码如下:

<h1>Title</h1>
<%= message %>

调用模板时,有时不传任何参数:

app.render("page.ejs"); 

有时会传入message参数:

app.render("page.ejs", {message: "test"});

报错情况

当不传参数时,会抛出引用错误:

ReferenceError: /views/login.ejs:4
    2| <h1>Title</h1>
 >> 3|    <%- message %>

message is not defined

尝试过的错误写法

以下写法无法解决问题,甚至会报错:

  • <%- message %>:不传参数时依然触发引用错误
  • <%= message %>:不传参数时依然触发引用错误
  • <%= if (message) message %>:直接抛出语法错误SyntaxError: Unexpected token 'if'

可行解决方案

参考相关问题后,以下几种写法可以解决报错问题:

  • 通过locals对象访问变量:
    <%= locals.message %>
    
  • 使用可选链操作符(需环境支持ES2020+):
    <%= locals?.message %>
    
  • 如果需要解析变量中的HTML内容,可使用<%-标签:
    <%- locals?.message %>
    

内容的提问来源于stack exchange,提问作者1.21 gigawatts

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:15:02