[英]Passing data from Node js to HTML using EJS
这是我的服务器端代码:
app.set('view engine', 'html');
app.engine('html', require('ejs').renderFile);
app.use(express.static('views'));
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
app.get('/',function(req,res){
var title = "PERFORMANCE OVERVIEW";
res.render('Main.html',{name:title});
})
这是我的客户端代码(Main.html):
<div class="row">
<div class="sm-col-12">
<h3 contenteditable="true" style="font-family:BentonSans Medium; text-align:center; color:rgb(0,38,99);"><%= name %></h3>
<hr style="border-top: dotted 2px;color:grey" />
</div>
</div>
我在Main.html页面上获得的输出是“<% - name%>”。 相反,它应该打印“性能概述”。 这段代码究竟出了什么问题?
编辑:
我忘了提到我还尝试了其他变种,如<%= name%> and {{ name }}
。 但我分别得到输出"<%= name%>" and "{{ name }}"
。
将其更改为<%= name %>
应该修复它。
如果没有,您可以尝试将app.set('view engine', 'html')
更改为app.set('view engine', 'ejs');
,然后删除以下2行。
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
app.get('/',function(req,res){
var title = "PERFORMANCE OVERVIEW" ;
res.render('Main',{name:title}) ;
});
我总是用这种方式编写它,所以我不能肯定地说你的语法是否正确,或者如果没有像这样设置ejs甚至可以工作。
确保Main.html
文件位于名为views
的文件夹中,并将此文件重命名为Main.ejs
。
下一次更改res.render('Main.html',{name:title});
res.render('main',{name:title});
<%- Outputs the unescaped value into the template
<%= Outputs the value into the template (HTML escaped)
在您打算打印值时,请使用<%=
标记,以便将<%- name%>
更改为<%= name%>
这些信息可以在这里找到 - https://ejs.co/#docs
在Main.html中将<% - name%>更改为<%= name%>
const express = require('express');
const bodyParser = require('body-parser');
const port = 5000;
const app = express();
app.set('view engine', 'html');
app.engine('html', require('ejs').renderFile);
app.use(express.static('views'));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.get('/', function (req, res) {
var title = "PERFORMANCE OVERVIEW";
res.render('Main.html', { name: title });
});
app.listen(port, console.log(`Server is running on port ${port}`))
试试这个,它呈现HTML页面,并访问你传递的变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.