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

EJS文件能否接收对象?Node传递对象变字符串问题求助

解决EJS中对象显示为'[object Object]'的问题

你遇到的问题是因为在EJS中直接输出对象时,默认会调用对象的toString()方法,普通对象的toString()返回值就是'[object Object]'。以下是两种场景的解决方法:

1. 访问对象的具体属性

直接通过点语法或方括号语法访问对象的属性即可。假设你的game对象包含status、players这类属性,在EJS里可以这么写:

<!-- 访问单个属性 -->
<p>当前游戏状态:<%= game.status %></p>

<!-- 遍历对象数组 -->
<h3>玩家列表</h3>
<ul>
  <% game.players.forEach(player => { %>
    <li>玩家:<%= player.name %> | 得分:<%= player.score %></li>
  <% }) %>
</ul>

2. 查看完整对象结构(调试用)

如果需要打印整个对象的结构用于调试,使用JSON.stringify()将对象转为格式化的JSON字符串:

<!-- 格式化输出对象结构 -->
<pre><%= JSON.stringify(game, null, 2) %></pre>

这里的null和2是JSON.stringify的参数,用于保留对象层级结构并缩进2个空格,让输出更易读。

注意:如果对象内容不可控,优先使用<%= %>输出,避免<%- %>带来的XSS风险。

内容的提问来源于stack exchange,提问作者Samuel Schlemper

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:16:10