简体   繁体   中英

Node.js + Express without using Jade

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

Yes,

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

should just work

UPDATED

Some might have concerns that sendFile only provides client side caching. There are various ways to have server side caching and keeping inline with the OP's question one can send back just text too with send :

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

Below was the original answer from 3+ years ago:

For anyone looking for an alternative answer to PavingWays, one can also do:

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

With no need to write:

app.use(express['static'](__dirname + '/public'));

For anyone having the need to immediately use regular HTML without jade in a new express project, you can do this.

Add a index.html to the views folder.

In app.js change

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

to

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

UPDATE

Use this instead. See comment section below for explanation.

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

You can serve static files automatically with Express like this:

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

Actually this should be express.static(...) but to pass JSLint above version works too ;)

Then you start the server and listen eg on port 1337:

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

Express now serves static files in /your_subdir_with_html_files automatically like this:

http://localhost:1337/index.html

http://localhost:1337/otherpage.html

In your main file:

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

Your index.jade file should only contain:

include index.html

where index.html is the raw HTML you made.

This is all out of date - correct answer for 3x, 4x is

The second answer here: Render basic HTML view?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM