In Express.js, by default, the view engine is set to use a template engine such as EJS, Handlebars, Pug (formerly Jade), etc.
However, if you want to use plain HTML files as your views without any template engine, you can do so by configuring Express to use the html file extension and serve static HTML files.
Here’s how you can set up Express to serve static HTML files as views:
1. Install Express
If you haven’t already installed Express in your project, you can do so using npm:
npm install express
2. Set up your Express app
Create your Express app and configure it to serve static HTML files from a directory.
const express = require("express");
const app = express();
// Set the directory from which to serve static HTML files
app.use(express.static("public"));
// Set the view engine to use HTML files
app.set("view engine", "html");
// Set the directory where your HTML files are stored
app.set("views", __dirname + "/views");
// Define your routes
app.get("/", (req, res) => {
// Render the 'index.html' file
res.render("index");
});
// Start the server
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
3. Create your HTML files
Create HTML files in a directory specified in the views directory.
For example, if you set app.set('views', __dirname + '/views');, create an index.html file in the views directory.
4. Accessing HTML files
Your HTML files will be served as views when you access the routes defined in your Express app.
For example, accessing the root route (/) will render the index.html file.
Your directory structure might look like this:
project
│ app.js
└───views
│ index.html
In this setup, Express will serve static HTML files from the views directory without any additional processing. You can use plain HTML, CSS, and JavaScript in your HTML files as needed.