节点.js将变量显示为 HTML
Node.js display variable as HTML
我正在努力尝试将Node.js变量显示为HTML。
我目前在我的应用程序中有这个.js它使用快递。
Package.json
"dependencies": {
"body-parser": "~1.12.0",
"cookie-parser": "~1.3.4",
"debug": "~2.1.1",
"express": "~4.12.2",
"ejs": "~2.1.3",
"hbs": "~2.9.0",
"morgan": "~1.5.1",
"serve-favicon": "~2.2.0"
}
应用.js
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
app.use('/users', users);
app.post('/calc', function(req, res) {
res.render('calc', {
title: 'Calc'});
var v3 = (req.body.value1 * req.body.value2);
console.log(v3);
});
在车把中,我只是简单地查看我是否可以看到呈现的值,但我无法看到。
计算 HBS <h2><%= v3 %></h2>
和{{v3}}
什么都不显示。
我错过了什么?
工作片段
app.post('/calc', function(req, res) {
var v3 = (req.body.value1 * req.body.value2);
res.render('calc', {
title: 'Calc',
v3: v3}); //Pass the local variables into objects to render
console.log(v3);
});
您有很多问题,确实需要阅读Express文档。如果没有更多代码(特别是您如何设置视图引擎(,就不可能完全推断出您的问题,但我们至少可以识别您发布的代码中的问题。
首先,也是最重要的,res.render
的第二个参数是一个"locals"对象,它定义了你可以在模板中使用的变量。您没有将 v3
变量传递到该对象中,因此您的模板无法输出它。
其次,您已经设置了一条POST
路线。如果您只是在浏览器中访问/calc
,则此路由将永远不会执行,因为访问页面是一个GET
请求。看起来您确实打算POST
,因为您正在使用req.body
,但值得一提的是,如果您从其他地方复制了此代码。
第三,您已将模板名称传递给没有扩展名的res.render
。这意味着您必须指定 Express 用于加载此模板的默认view engine
。您尚未显示代码的这一部分,因此请查看文档以设置view engine
。默认情况下,Express 会在名为 views
的目录中查找模板,因此请确保您的模板位于 /views/calc.hbs
处,并且您的view engine
设置为车把(需要设置view engine
并调用app.engine
来注册车把(。
第四,您尝试console.log
v3
变量,该变量不会写入 res
对象,这是将发送到浏览器的响应。
解决这些问题应该会让你走上正轨。
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 使用鼠标悬停JavaScript/HTML显示文本
- 用javascript在html显示列表中显示新成员
- 尊重“; 〃;从HTML显示中的API响应返回的换行符(和特殊字符)
- HTML 显示/隐藏元素 JS 不起作用
- 从一个文本框执行代码,并在另一个文本框中以 HTML 显示输出
- 使用javascript for html显示特定时区的日期和时间
- 如何将一个元素的外部HTML显示为另一个元素的内容
- 将SQL BIT转换为JSON,直到jQuery,最后以HTML显示
- 使用 Javascript 迭代以 HTML 显示多个图像
- 文本(输入)字段中的 HTML 显示结果
- PHP - 作曲家自动加载器导致 html 显示在浏览器中
- 将HTML文件中的表单提交到PHP文件,并以相同的HTML显示结果
- 如何使 HTML/Javascript 从 PHP 脚本接收数据并以 HTML 显示
- 显示一个图像,然后使用 HTML 显示另一个图像
- input type=“password” 在 IE 11 上使用 HTML 5 显示文本
- 使用 JSON 从 PHP 返回数组并以 HTML 显示内容的适当方法
- Jquery对话框IE9内容未使用html显示
- HTML显示在“;查看源“;与Firebug中显示的HTML不同
- 使用jQuery.HTML()插入时HTML显示不正确