Server create in Node.js ٩(๑❛ᴗ❛๑)۶

Barry YU
8 min readFeb 14, 2020

--

建立Node.js server

Before create server :

  • 1 ) what is server and client , and how to contact ? and finality respone to” client of browser “ Websit

2) what is Moduel ?

3) Require function How to Use ?

建立前, 首先要先暸解 server 和 client 如何聯絡?
最後回應到客戶端的瀏覽器.

copy from ALPHA CAMP

後續的練習網址會輸入localhost :3000

因為www.google.com 是表示我client 要到 www.google.com的server

www.google.com 本身是一個IP位置.[ 8.8.8.8 ]

localhost 你想像他也是一個IP位置 [ 127.0.0.1 ]

3000 :
當我們開啟一個PID [ process ID ] 需要一個相對應的聯絡服務用的通訊編號稱或連接阜稱為[ port ], 除了少部分是固定給自己電腦本機使用的, 大部分都能編.

通訊埠(英語:port),又稱為 連接埠端口協定埠(protocol port)

在TCP協定中,埠號0是被保留的,不可使用。
1–1023 系统保留,只能由root用户使用。
1024 — -4999 由客户端程序自由分配。
5000 — -65535 由服务器端程序自由分配在UDP協定中,來源埠號是可以選擇要不要填上,如果設為0,則代表沒有來源埠號。

Modules 模組

白話文解釋就是/ 我要某個功能/ 已經包在裡面.
在Node.js 裡面的Modules已有了:各種可以設定網路需要的工具.

require(“http”)    

Hey ! Node ! 我需要( http )網路功能. (๑•̀ㅂ•́)و

Node.js 呼叫 Modules 透過 require ()

require () 是Node.js 常用, require 像是 call function . .requiere 基本用法

參考作者資料: 阮一峰

Node 透過 require(X) ,會按下面的方式處理。

(1)如果 X 是内置Modules(比如 require(‘http’))

返回moduless  或  找到後不再執行

(2)如果 X 以 “ ./ ” 或者 “/” 或者 “../”

根據 X 所在的父module,確定 X 的絕對路徑。
將X當成文件,依序查找下面文件,只要其中有一個存在,就RES該件,不再執行。
将 X當成目錄,依次查找下面文件,只要其中有一个存在,就reture该文件,不再執行。

(3)如果 X 不帶路徑(path )

根據X 所在的父Module,確定 X 可能的安裝目錄。 
依次在每个目录中,将 X 當成文件名或目錄名加載。

(4) 抛出 “not found”

//下一篇章會在更詳細, 實作require ()的功能

The next chapter will be in more detail,
actually doing the function of require (). ^_^

建立 Node.js 本機伺服器

Create Node.js local server ….

現在就讓我們用 Node.js 來建立一個簡單的伺服器吧!我們繼續用上一單元建立好的 index.js 來撰寫,然後在這份 JavaScript 裡加上以下六個設定步驟:

所有的變數用 const 確保定義的變數不是‘全域 Globally ‘

1. 載入 Node.js HTTP 模組

Loading Node.js Http Module

const http =require ( ’http ’)

2. 定義和伺服器有關的變數

Define with server have relate of variables

const hostname = ‘localhost’const port = 3000

首先我們可以使用 HTTP 模組中的 createServer 建立伺服器。
可以透過剛才設定的 http 這個變數來使用 HTTP 模組中的方法:

const server = http . createserver( ) 

建立好相關的變數後,就可以開始來設定這個伺服器會如何:

1)處理瀏覽器發進來的請求 (request)

2)根據請求給予回應 (response)

const server = http.createserver( (req , res)=>{ x }  ) 

當瀏覽器向伺服器請求時, createserver ( ) 內帶入的函數將會被執行.

3. 設定回應的 HTTP 狀態碼

(Status code) / setting respone of Http status

const server = http . createserver ( (req ,res )=>{      res.statusCode = 200 }//200 ok 

4. 設定回應的內容類型為何?

(Content-Type) / setting respone of content Of type

給予request 和 respone 設定內容

res 參數則可以設定我們要給予瀏覽器的回應為何。

res.setHeader ( ) / 在HttpServletResponse 物件上的 setHeader()標頭

Html 文件(text/html) 、純文字檔(text/plain) 、PDF 檔 (application/pdf) 、影片檔 (video/mpeg4) 、或者是經常用來傳送資料的 JSON 檔(application/json) 。

const server = http.createserver ( ( req , res ) => {statuscode = 200 
res.setHeader(‘ content-Type ‘,‘text/html ‘ ) //設定回應內容和文字類型
})

5. 把回應的訊息傳送給瀏覽器.

respone/ Sent a response of Text to Browser
透過 res.end() 可以把想要給瀏覽器的回應寫在這裡,例如可以先簡單的回應「Create your node server 」:

const server = http.createserver ( ( req , res ) => {statuscode = 200 
res.setHeader(‘ content-Type ‘,‘text/html ‘ ) //設定回應內容的類型
res.end ( ` create your node server ` ) //設定回應的內容})

6. 啟動並監聽伺服器 / Starts Run and listen Server.

server.listen( port , hostname ,( )=>{  
console.log( ‘`the servrer listening on ${hostname} :${port}`)
匿名函數 ()=>

執行檔案

透過Node server 連結到Browser :

open you terminial >>$ node index.js

瀏覽器打開Node.js

Open your Node.sj from Browser

on your Browser address bar :  localhost:3000  << Before first to setting Define Variable , If you forget jsut review back >

回應的訊息可以置入HTML :

Html of script also could be into res.end ( ``) .

res.end ( ` into your html of content ) , 
as like chart , than restart your server.

bye ! bye !

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response