已拒绝访问以解析属性“大小”,因为它不是其父级的“自己的属性”

Posted

技术标签:

【中文标题】已拒绝访问以解析属性“大小”,因为它不是其父级的“自己的属性”【英文标题】:Access has been denied to resolve the property "size" because it is not an "own property" of its parent 【发布时间】:2020-08-16 04:57:02 【问题描述】:

我正在使用express-handlebars 包(版本:4.0.4)并像这样渲染我的代码:

app.get("/", (req, res) => 
    res.render('index',  title: 'Snowy' , 
      allowProtoMethodsByDefault: true,
      allowProtoPropertiesByDefault: true
    );
)

但我仍然遇到同样的错误。 *** 上的任何解决方案都不适合我。

【问题讨论】:

看看这个帖子,和你的问题类似:***.com/questions/59690923/… 【参考方案1】:

您必须安装旧版本的车把。将此粘贴到您的终端,它应该安装正确版本的车把


npm uninstall express-handlebars && npm install express-handlebars@3.0.2


此版本问题可能与您机器上的 npm 或 node.js 版本有关。

【讨论】:

下面的命令有点作用:let allowInsecurePrototypeAccess = require('@handlebars/allow-prototype-access'); app.engine("handlebars", handlebars( handlebars: allowInsecurePrototypeAccess(Handlebars) ));我可以使用这段代码访问原型(例如:bot.users.cache.size)机器人不能使用类似的命令:bot.users.cache.get("300573341591535617")我得到这个错误:Expecting 'ID', got 'INVALID' 我的代码:<div class="text-dark font-weight-bold h5 mb-0"><span>bot.users.cache.get("300573341591535617")</span></div> 嘿,你为什么删除你的答案? 这是一种错误的方法,这就是为什么我删除了我之前的答案。你知道,当我检查错误消息时,我实际上注意到了一个“大小”。可能您需要检查缓存中是否存在 size 属性。我认为有问题。也许您应该使用 if else 语句来确保 size 属性确实存在。我认为你的问题很简单。没有看到 .hbs 视图部分就很难猜到。 使用.size没有问题,我尝试使用proto方法时出错。

以上是关于已拒绝访问以解析属性“大小”,因为它不是其父级的“自己的属性”的主要内容,如果未能解决你的问题,请参考以下文章

Handlebars:访问已被拒绝解析属性“imagePath”,因为它不是其父级的“自己的属性”

Handlebars:访问已被拒绝解析属性“some prop”,因为它不是其父级的“自己的属性”

Handlebars:访问已被拒绝解析属性“_id”,因为它不是其父级的“自己的属性”

使用带有节点和快递的把手#each 时出错

请问如何添加运行时选项来禁用检查或此警告

Angular 9 - 生成空的伊斯坦布尔测试覆盖率报告