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

Posted

技术标签:

【中文标题】Handlebars:访问已被拒绝解析属性“imagePath”,因为它不是其父级的“自己的属性”【英文标题】:Handlebars: Access has been denied to resolve the property "imagePath" because it is not an "own property" of its parent 【发布时间】:2020-10-06 14:44:49 【问题描述】:

我无法将我保存的数据从我的产品播种机正确获取到商店

看起来像这样https://prnt.sc/t10v00

我想要页面上的数据中的图像和标题

在我的终端中显示 ///// Handlebars: Access has been denied to resolve the property "title" 因为它不是其父级的“自己的属性”

# each products

<div class="row">
# each this

<div class="col-sm-6 col-md-4">
<div class="thumbnail">
<img src="this.imagePath"  class = "img-responsive">
<div class="caption">
<h3 align="center">this.title</h3>
<p class="description">this.description</p>
    <div class="clearfix">
    <div class="price pull-left">€this.price<ahref="#" style="float:right"class="btn btn-primary pull-right" role="button">Add cart</a> </div>

     </div>
</div>

</div>

/each

</div>

/each


index.js

var express = require('express');
var router = express.Router();
var Product = require('../models/product');
/* GET home page. */
router.get('/', function(req, res, next) 
 Product.find(function(err, docs) 
var productChunks = [];
var chunkSize = 3;
for (var i = 0; i < docs.length; i += chunkSize) 
  productChunks.push(docs.slice(i, i + chunkSize));

res.render('shop/index',  title: 'Shopping Cart', products: productChunks );
 );
);

module.exports = router;

有人可以帮我吗?

【问题讨论】:

【参考方案1】:
"express-handlebars": "^3.0.0"

用过这个版本。 有效。 它为新版本提供相同的输出。

【讨论】:

【参考方案2】:

遵循下面给出的语法:

dbName.find().lean()
  // execute query
  .exec(function(error, body) 
    //Execute you code
  );

【讨论】:

【参考方案3】:

此代码适用于我:

const Handlebars = require('handlebars');
const expressHandlebars=require('express-handlebars');
const  allowInsecurePrototypeAccess  = require('@handlebars/allow-prototype-access');


// view engine setup
app.engine('.hbs', expressHandlebars( handlebars: allowInsecurePrototypeAccess(Handlebars) ,defaultLayout: 'layout', extname: '.hbs'));
//app.set('views', path.join(__dirname, 'views'));
app.set('view engine', '.hbs');

【讨论】:

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

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

解决了! Handlebars:访问已被拒绝解析属性“名称”,因为它不是其父级的“自己的属性”已修复

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

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

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

为啥 user.username 在车把中不起作用