Node.js: Server
在此之前可以先下載nodemon套件,並且用 nodemon app.js
開啟應用程式,nodemon的好處在於如果應用程式有改變時可以立即改變畫面。
這篇記錄如何用原生的Node.js語法建立一個伺服器,分為不引入和引入html檔案的寫法:
const http = require('http');
const url = require('url');
// 建立伺服器處理請求並回應
const server = http.createServer((req, res) => {
if( req.url === "/" ) {
// 寫入HTML語法
res.writeHead(200, {"Content-Type": "text/html"});
res.write(`<h1>You are on the homepage</h1>`);
res.write(`'/' means the path is homepage`);
res.end();
} else {
cosnt parsedUrl = url.parse(req.url)
const user = parsedUrl.replace('/');
res.write(`Hello ${user}`);
res.end();
}
});
// 讓伺服器監聽來自port 8000的請求
server.listen(8000, () => {
console.log('Server is running on port 8000');
});
另外也有一種方式是直接引入外部的html檔案:
const http = require('http');
const path = require('path')
const fs = require('fs');
const server = http.createServer((req, res) => {
if(req.url === "/") {
// 讀取html檔案
fs.readFile(path.join(__dirname, "index.html"), (err, data) => {
res.writeHead(200, {"Content-Type": "text/html"});
res.write(data); // 寫入html檔案
res.end();
})
}
});
server.listen(8000, () => {
console.log('Server is running on port 8000');
});
不過一般都會用Express.js這個套件去建立伺服器,所以原生伺服器的建立方式只記錄到這裡。
References 2022網頁開發全攻略(HTML, CSS, JavaScript, React, SQL, Node, more) http.createServer([options][, requestListener]) @Node.js v18.x