Node.js寫的是server端的功能,因此我們也可以寫出要根據client的request要給出什麼回應。
這裡我們建立了一個 HTTP 伺服器,並設定了一個函式來處理client端的請求,最後監聽本機上的port3000。
const http = require('http');
const server = http.createServer((req, res) => {
console.log('request made');
});
// localhost is the default value for 2nd argument
server.listen(3000, 'localhost', () => {
console.log('listening for requests on port 3000');
});
Req和res分別是request和response物件,我們可以印出其中的內容,
用Req.url會發現client用GET方法請求server。
Res.setHeader能設定回應的內容格式。
console.log(req.url,req.method);
res.setHeader('Content-Type','text/html');
直接回應一個事先準備的html網頁。
fs.readFile(path, (err, data) => {
if (err) {
console.log(err);
res.end();
}
//res.write(data);
res.end(data);
接著設定基本的路由,讓server根據不同的url導向不同的網頁,並改寫status code。
let path = './views/';
switch(req.url) {
case '/':
path += 'index.html';
res.statusCode = 200;
break;
case '/about':
path += 'about.html';
res.statusCode = 200;
break;
case '/about-us':
res.statusCode = 301;
res.setHeader('Location', '/about');
res.end();
break;
default:
path += '404.html';
res.statusCode = 404;
}