如何在不使用任何模板引擎的情况下将某些上下文从节点服务器发送到html模板 [英] How to send some context from node server to html template without using any template engines
问题描述
server.js
server.js
app.get('/',(req,res) => {
let context = {title:"api",message:"root"}
res.sendFile(__dirname + '/views/index.html',context)
})
index.html
index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
title{{title}}
message{{message}}
</body>
</html>
如何将标题和消息发送到在contex变量中分配的index.html.
how can i send title and message to index.html which is assigned in contex variable.
我找到了很多方法来使用诸如jade,ejs,pug等的模板引擎.但是我希望使用纯HTML.
i found a lot of way to do it using some template engines like jade,ejs,pug etc.. but i want it in pure html.
请看一下我的代码....
please have a look into my code....
推荐答案
不使用模板引擎(如jade,ejs,pug或客户端库,例如angular,react).
您无法在html端内插{{title}}的含义.
Without using template engines like jade,ejs, pug or client side libraries like angular, react.
You cannot interpolate the meaning of {{title}} in the html side.
另一种方法是使用javascript从服务器获取详细信息
Another approach is using javascript to fetch the details from server
html文件
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="test">
</div>
<script type="text/javascript">
let url="http://localhost:8001/test";
fetch(url).then(response => response.json())
.then( (result) => {
console.log('success:', result)
let div=document.getElementById('test');
div.innerHTML=`title: ${result.title}<br/>message: ${result.message}`;
})
.catch(error => console.log('error:', error));
</script>
</body>
</html>
server.js
server.js
app.get('/test',(req,res)=>{
//res.sendFile(__dirname +"/views/test.html",);
res.json({title:"api",message:"root"});
})
app.get('/render',(req,res)=>{
res.sendFile(__dirname +"/views/test.html");
})
这篇关于如何在不使用任何模板引擎的情况下将某些上下文从节点服务器发送到html模板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!