Home > Article > Web Front-end > How to add html files in nodejs
Node.js is a reliable JavaScript runtime environment that can be used to develop server-side applications. It allows developers to use JavaScript to develop server-side applications, which brings many benefits to front-end developers. For example, the front-end and back-end can be developed using the same programming language or many modules can be installed directly using npm to speed up the development process.
Including HTML files in Node.js can help developers dynamically generate HTML pages or provide HTML files to clients as static resources. Below we will introduce several methods to add HTML files.
The fs module in Node.js can be used to read and write files. Developers can use this module to read HTML code in files and generate dynamic HTML pages on the server side.
const fs = require('fs'); const http = require('http'); const port = process.env.PORT || 3000; const server = http.createServer((req, res) => { fs.readFile('index.html', (err, data) => { if (err) throw err; res.writeHead(200, {'Content-Type': 'text/html'}); res.write(data); res.end(); }); }); server.listen(port, () => { console.log(`Server running at http://localhost:${port}`); });
The above code uses the readFile method of the fs module to read the file content, and uses the write and end methods of the res object to send the file content to the client. This method is suitable for situations where HTML pages need to be dynamically generated, for example, data needs to be obtained from a database and presented in HTML form.
Express is a popular web framework in Node.js that helps developers quickly create web applications. Using this framework, you can easily serve HTML files to clients as static resources.
const express = require('express'); const app = express(); const port = process.env.PORT || 3000; app.use(express.static('public')); app.listen(port, () => { console.log(`Server running at http://localhost:${port}`); });
In the above code, the use method of the app object is used to specify the public directory as a static resource directory. HTML files in the public directory can be accessed directly through http://localhost:3000/index.html
. This method is suitable for situations where static resources need to be provided, such as website logos, JavaScript files, and CSS files.
The template engine is a tool that merges data and HTML templates. Various template engines in Node.js can be used to combine HTML files with dynamic data, such as EJS, Pug, Handlebars, etc. The following is sample code using the EJS template engine.
const express = require('express'); const app = express(); const port = process.env.PORT || 3000; app.set('view engine', 'ejs'); app.get('/', (req, res) => { const data = { name: 'John Doe', city: 'London' }; res.render('index', { data }); }); app.listen(port, () => { console.log(`Server running at http://localhost:${port}`); });
In the above code, the set method of the app object is used to set the EJS template engine as the view engine. There is an index.ejs file in the root directory, which contains dynamic data and HTML code.
<!DOCTYPE html> <html> <head> <title>Node.js</title> </head> <body> <h1>Hello <%= data.name %> from <%= data.city %></h1> </body> </html>
Using the render method of the res object, developers can specify the template file name and the required data objects. This method will automatically merge the HTML code and data objects and send the rendered results to the client. This method is suitable for situations where HTML pages need to be generated based on dynamic data.
Summary
The above three methods can all realize the function of adding HTML files in Node.js. HTML pages can be dynamically generated using the fs module; the Express framework can easily provide static resources; the template engine can help developers generate complete HTML pages from dynamic data and HTML code. Developers should choose the appropriate method based on their needs.
The above is the detailed content of How to add html files in nodejs. For more information, please follow other related articles on the PHP Chinese website!