在我的NodeJS-express应用程序中,我使用把手引擎进行模板化。可以使用动态数据进行路由。我的应用程序有一个单一的布局文件。如何动态地将数据传递给模板文件?
编辑:
这是我的模板文件。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<nav>
<div>
<ul class="navbar-nav">
<li class="nav-item active">
<a>Home</a>
</li>
<li class="nav-item">
<a>about</a>
</li>
<li class="nav-item">
<a>contact</a>
</li>
</ul>
</div>
</nav>
{{{body}}}
</body>
</html>
&#13;
我需要导航项目(home,about,contact)全部来自API调用。没有硬编码。
答案 0 :(得分:0)
我认为您需要在把手中执行此操作:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<nav>
{{{navStuff}}}
</nav>
{{{body}}}
</body>
</html>
在你的Express路线中,你可以这样做:(我假设它的路由简单。你可以适应ReactRouter V4)
app.get('/home', function(req, res, next){
return res.render('app',{
body: toRender,
navStuff: menu
})
});
同样,如果你必须根据页面进行数据库调用以获取菜单项,那么你可以采用这个:
app.get('/home', function(req, res, next){
getMenuFromDb(pathName).then(function(menu){
return res.render('app',{
body: toRender,
navStuff: menu
})
});
})
})