Handlebars:访问已被拒绝解析属性“some prop”,因为它不是其父级的“自己的属性”
Posted
技术标签:
【中文标题】Handlebars:访问已被拒绝解析属性“some prop”,因为它不是其父级的“自己的属性”【英文标题】:Handlebars: Access has been denied to resolve the property "some prop" because it is not an "own property" of its parent 【发布时间】:2020-10-04 17:15:23 【问题描述】:mongo 型号:
const mongoose = require('mongoose');
const ProductSchema = mongoose.Schema(
_id:mongoose.Schema.Types.ObjectId,
Pid:Number,
Pname:String,
Price: Number,
Pdesc: String,
Picname: String
);
module.exports = mongoose.model('product',ProductSchema )
产品的控制者:
const express = require('express');
const Product = require('../models/products');
module.exports =
ShowProduct:(req, res, next)=>
Product.find().then((products)=>
console.log(products);
res.render('products', layout: 'index', listProd:products);
);
这是 products.hbs:
<div class="row">
#each products
<div class="col-3" id=this.Pid>
<h1>Pname:this.Pname</h1>
<div>Price:this.Price</div>
<div>Pdesc:this.Pdesc</div>
</div>
/each
</div>
在浏览器中我看不到产品 我看到产品的数量 因为每个。
需要解决什么问题?
【问题讨论】:
【参考方案1】:我也有这个问题。据我了解,它与您的车把文件的扩展 .hbs 相关。您需要做的就是:
npm install @handlebars/allow-prototype-access
添加
const allowInsecurePrototypeAccess = require('@handlebars/allow-prototype-access')
你的全部观点
不要忘记添加车把选项!
const hbs = exphbs.create( defaultLayout: 'main', extname: 'hbs', handlebars: allowInsecurePrototypeAccess(Handlebars) );
【讨论】:
以上是关于Handlebars:访问已被拒绝解析属性“some prop”,因为它不是其父级的“自己的属性”的主要内容,如果未能解决你的问题,请参考以下文章
Handlebars:访问已被拒绝解析属性“some prop”,因为它不是其父级的“自己的属性”
解决了! Handlebars:访问已被拒绝解析属性“名称”,因为它不是其父级的“自己的属性”已修复