我想在Express.js中呈现静态html,但仍然有app.get()方法用于逻辑

我想在Express.js中呈现静态html,但仍然有app.get()方法用于逻辑,html,node.js,express,static,Html,Node.js,Express,Static,这似乎是一件很可笑的事情,但我想从app.get()方法中显示html文件。似乎我遇到的每个答案都使用了解决方案app.use(express.static(uu dirname+/public)),但这不允许来自服务器的逻辑 我想做的是让我的.html文件由express呈现,这样我可以保留一些基本逻辑: app.get('/', function(res, req) { if (condition) { res.render('this.html'); } else {

这似乎是一件很可笑的事情,但我想从
app.get()
方法中显示html文件。似乎我遇到的每个答案都使用了解决方案
app.use(express.static(uu dirname+/public)),但这不允许来自服务器的逻辑

我想做的是让我的.html文件由express呈现,这样我可以保留一些基本逻辑:

app.get('/', function(res, req) {
  if (condition) {
    res.render('this.html');
  }
  else {
    res.render('that.html');
  }
}
在我看来,这只是针对模板文件的,而且我一定没有看到一些简单的东西来实现这一点,这太傻了

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

您可以使用res.sendFile()(res.sendFile()用于新版本)来呈现HTML文件

评论中问题的更新:

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



啊,等等!这似乎没有加载我的源代码javascript和样式表,有办法解决吗?啊,是的,我需要添加回一行:app.use(express.static(_udirname+“/public”);到我的服务器
<head>
    <link rel="stylesheet" type="text/css" href="mystyle.css">
    <script src="myscripts.js"></script>
</head>