如何在不使用任何模板引擎的情况下将一些上下文从节点服务器发送到html模板



server.js

app.get('/',(req,res) => {
let context = {title:"api",message:"root"}
res.sendFile(__dirname + '/views/index.html',context)
})

index.html

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
title{{title}}
message{{message}}
</body>
</html>

如何将标题和消息发送到上下文变量中指定的index.html。

我找到了很多方法来使用一些模板引擎,如jade、ejs、pug等。但我希望它是纯html。

请查看我的代码。。。。

不使用模板引擎,如jade、ejs、pug或客户端库,如angular、react
您不能在html端插入{{title}}的含义。

另一种方法是使用javascript从服务器获取详细信息

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

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");
})

最新更新