我想在Express.js中渲染静态html,但仍然有逻辑的app.get()方法

时间:2015-03-25 21:52:50

标签: html node.js express static

这似乎是一个荒谬的事情,但我希望在app.get()方法中显示html文件。似乎我遇到的每个答案都使用了解决方案app.use(express.static(__dirname + '/public'));,但那时不允许来自服务器的逻辑。

我想做的是,我的.html文件是通过express呈现的,所以我可以保留一些基本的逻辑:

app.get('/', function(res, req) {
  if (condition) {
    res.render('this.html');
  }
  else {
    res.render('that.html');
  }
}

对我而言,这似乎是非常愚蠢的,这仅仅适用于模板文件,而且我不能看到一些简单的工作。

编辑:使用sendFile似乎不允许HTML包含外部文件,javascript / css。

1 个答案:

答案 0 :(得分:1)

您可以使用res.sendfile()(res.sendFile()作为新版本)来呈现html文件。

评论中的问题更新:

您可以在html文件中包含您的css和javascript文件(您可能需要指定资源的路径才能正确加载它们):

<head>
    <link rel="stylesheet" type="text/css" href="mystyle.css">
    <script src="myscripts.js"></script>
</head>