0

在我的 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>

我需要导航项目(家庭、关于、联系人)都来自 API 调用。没有硬编码。

4

1 回答 1

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

})

于 2017-12-26T06:09:04.487 回答