已拒绝访问以解析属性“大小”,因为它不是其父级的“自己的属性”
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”,因为它不是其父级的“自己的属性”