不使用Jad的Node.js + Express

是否可以在没有任何模板引擎的情况下使用express?

prog keys asked 2020-08-11T18:14:00Z
6个解决方案
30 votes

是,

app.get('/', function(req, res){
  res.render('index.html');
});

应该工作

Marcel M. answered 2020-08-11T18:14:48Z
15 votes

更新

有些人可能担心sendFile仅提供客户端缓存。 有多种方法可以使服务器端缓存并与OP的问题保持一致,即可以使用send来发送回文本:

res.send(cache.get(key));

以下是3年前的原始答案:

对于正在寻找PavingWays替代答案的任何人,也可以这样做:

app.get('/', function(req, res) {
  res.sendFile('path/to/index.html');
});

无需写:

app.use(express['static'](__dirname + '/public'));
Robert Brisita answered 2020-08-11T18:14:24Z
7 votes

对于需要在新的Express项目中立即使用常规HTML而不使用Jade的任何人,您都可以这样做。

将3007014034819519515392添加到views文件夹。

app.js中进行更改

app.get('/', routes.index);

app.get('/', function(req, res) {
  res.sendfile("views/index.html");
});

更新

改用它。 请参阅下面的评论部分以获取解释。

app.get('/', function(req, res) {
  res.sendFile(__dirname + "/views/index.html"); 
});
JGallardo answered 2020-08-11T18:15:30Z
3 votes

您可以使用Express自动提供静态文件,如下所示:

// define static files somewhere on top
app.use(express['static'](__dirname + '/your_subdir_with_html_files'));

实际上,这应该是express.static(...),但通过高于版本的JSLint也可以;)

然后您启动服务器并收听例如 在端口1337上:

// app listens on this port
app.listen(1337);

Express现在自动在/ your_subdir_with_html_files中提供静态文件,如下所示:

[http:// localhost:1337 / index.html]

[http:// localhost:1337 / otherpage.html]

Rocco answered 2020-08-11T18:16:11Z
2 votes

在您的主文件中:

app.get('/', function(req, res){
    res.render('index');
});

您的index.jade文件应仅包含:

include index.html

其中index.html是您创建的原始HTML。

Emanuel Saringan answered 2020-08-11T18:16:40Z
2 votes

这已经过时了-3倍,4倍的正确答案是

这里的第二个答案:呈现基本的HTML视图?

Dan answered 2020-08-11T18:17:05Z
translate from https://stackoverflow.com:/questions/7520541/node-js-express-without-using-jade