【问题标题】:Reference Error: array value is not defined参考错误:未定义数组值
【发布时间】:2020-09-04 19:02:30
【问题描述】:

我正在使用 Node Web 应用程序,我在其中将数据从服务器传递到客户端。这是有问题的路线:

router.get("/:id", function(req, res){
Player.findById(req.params.id).populate("comments").exec(function(err, foundPlayer){
    if(err){
        console.log(err);
    } else {

        let years = foundPlayer.season.map(({
            grade}) => grade);

        res.render("players/show", {player: foundPlayer, yearTotals: years });
    }
});

});

在创建一个变量来存储years 的映射之后,我正在传递有关来自 Mongo 的 player 的特定信息。这是我正在使用的 EJS 模板中的脚本标记:

    let xAxis = [<%= yearTotals %>];

在 Chrome 控制台中查看代码显示:

let xAxis = [Freshman, Sophomore, Junior, Senior]

所以值成功通过了;但是,我遇到了这个错误:

Uncaught ReferenceError: Freshman is not defined

我在这里缺少什么?提前感谢您的帮助!

【问题讨论】:

  • 那些应该是字符串吗?因为如果是这样,他们周围没有引号。
  • @Taplar - 是的,将值转换为字符串的合适方法是什么?
  • 可能需要查看您在let xAxis = [&lt;%= yearTotals %&gt;]; 周围的选项,看看有什么可以确保字符串周围有引号
  • let xAxis = &lt;% JSON.stringify(yearTotals) %&gt;;

标签: javascript html node.js ejs


【解决方案1】:

我明白了。

首先,我将 JSON.stringify 添加到数组中,如下所示:

let xAxis = <% JSON.stringify(yearTotals) %>

返回引用的&amp;#34 编码。以下解决了我的问题:

let xAxis = <%- JSON.stringify(yearTotals) %>;

希望这对将来的某人有所帮助!

【讨论】:

    猜你喜欢
    • 2013-03-02
    • 2023-03-14
    • 2014-07-25
    • 2018-03-02
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多