{%hackmd BJrTq20hE %}
第 14 屆 iThome 鐵人賽 (2022)
後腳才剛完成一個實作,前腳我們就要為了下一個實作打基底了,我們理解了JS語言的基本原理事件和建構,是時候做一個自己的網頁了,Node.js本身屬於前端,但因為Node將JS打造成也能夠執行伺服器的語言,使的JS也能夠執行向MonogoDB這樣的後端語言,但本質上來說 Node.js 對於前端的工作比較在行,也因為其高併發的特性很適合做網頁及網路處理,題外話,Netfilx 、 PayPal 、Uber都是Node.js所製作而成的喔,好啦!進到製作網頁的第一步,Http!
高樓大廈始於平地,http是最原先能夠和網站建立溝通的模組,所以其方法也很簡單但宣告繁瑣,不過我們可以先了解比較...正確or原始的程式建立方式,這能夠在之後使用比較現代的套件像是Express 前了解其原理。
先來寫個簡單的http Hello World
var http = require('http');
http.createServer(function(req,res){
res.write("Hello World! Welcome ")
res.end();
}).listen(8000);
這裡 http先創造了一個伺服器 function(req,res) 是指函數偵測(需求,回復),記得JS的類別基本上是較為複雜的函數比較偏向語法糖,然後.listen或聽取任何從port 8000的任何需求並回復下方的函數。
現在 發揮Node.js前端的優勢,將前端的Http寫在Node裡面像是這樣:
'use strict';
// 匯入http模組:
var http = require('http');
// 建立http server,並傳入回調函數:
var server = http.createServer(function (request, response) {
// 回調函數接收request和response物件,
// 獲得HTTP請求的method和url:
console.log(request.method + ': ' + request.url);
// 將HTTP響應200寫入response, 同時設定Content-Type: text/html:
response.writeHead(200, {'Content-Type': 'text/html'});
// 將HTTP響應的HTML內容寫入response:
response.end('<h1>Hello world!</h1>');
});
// 讓伺服器監聽8080通訊埠:
server.listen(8080);
console.log('Server is running at http://127.0.0.1:8080/');
執行結果
Node.js對於前段和後端的界線還沒展示給你們看,目前都是前端的工作,但是當之後到了SQL連結資料庫和Mongo.DB進行Backend,我確定能夠將Node.js最強大的一面展現出來,下一篇『DAY 18 Express網頁建置』。