小编Coa*_*Cat的帖子

Express Handlebars 不会渲染数据

我正在使用 Express-Handlebars 模板引擎使用 NodeJS 和 Express。

Handlebars 在尝试渲染模板时抛出以下错误:

Handlebars:访问已被拒绝解析属性“用户名”,因为它不是其父级的“自己的属性”。您可以添加运行时选项以禁用检查或此警告:有关 详细信息,请参阅 https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access

根据上面的链接:

从 4.6.0 版本开始,Handlebars 默认禁止访问上下文对象的原型属性和方法。原因是这种可能性引起的各种安全问题。

我的 app.js 包含以下内容:

const exphbs = require('express-handlebars');
const express = require('express');
// Init Express
const app = express();
// VIEW ENGINE
app.engine('handlebars', exphbs({
  defaultLayout: 'main'
}));
app.set('view engine', 'handlebars');
Run Code Online (Sandbox Code Playgroud)

我的路由文件通过 Mongoose 从 MongoDB 获取:

const exphbs = require('express-handlebars');
const express = require('express');
// Init Express
const app = express();
// VIEW ENGINE
app.engine('handlebars', exphbs({
  defaultLayout: 'main'
}));
app.set('view engine', 'handlebars');
Run Code Online (Sandbox Code Playgroud)

模型是一个对象数组

这个问题只是在我开始添加把手助手之后才开始发生。我已经删除了帮助程序并恢复到我的原始配置设置(上面)无济于事。我试过删除 node_modules 文件夹并重新安装 …

mongoose node.js express server-side-rendering express-handlebars

6
推荐指数
3
解决办法
6785
查看次数