Nodejs新手區
什麼是Nodejs
Node.js 是 Ryan Dahl 基於 Google 的 V8 引擎於 2009 年釋出的一個 JavaScript 開發平台,主要聚焦於 Web 程式的開發,通常用被來寫網站。
其實這樣的介紹還是有點難懂,簡單來說我們看的網頁都必須從「伺服器」中取得,而這些「伺服器」可能是各種程式語言撰寫的,但就是沒有Javascript,而Nodejs就是發明來用Javascript製作伺服器程式,酷吧!
下面這位就是Ryan Dahl,Nodejs的創始人↓
安裝Nodejs,凡事都從 Hello World 開始
打開命令提示字元或是終端機,輸入
node -v
或node --version
去檢查看看nodejs版本馬上開始我們第一個Node.js應用: "Hello World",先在D槽或是MAC的根目錄建立一個
helloworld.js
檔案,接著用使用終端機切換目錄到helloworld.js
所在的資料夾,輸入node helloworld.js
,helloworld.js的內容如下
console.log("helloworld");
來架設第一個網站伺服器
const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
建立一個server.js
,在裡面貼上上面這段程式碼,並且下node server.js
指令,然後去瀏覽器輸入http://127.0.0.1:3000
,接著驚呼一聲:「我的老天爺啊!」 你就會看到你的你你的hello world被印出來了,好的開始是成功一半,你已經建立一個網站伺服器了,但還有一些小知識補充一下。
Content-Type
內容類型,一般是指網頁中存在的Content-Type,用於定義網絡文件的類型和網頁的編碼,決定瀏覽器將以什麽形式、什麽編碼讀取這個文件
- Content-Type:表示內容格式
- text/html 網頁
- application/json JSON 資料
- image/jpg 圖片 JPEG
statusCode
以對伺服器發出一個request,最後結果到底如何,有個標準是狀態碼,透過數字我們就能大概了解這次的request結果如何,也就是所謂的statusCode。
- 200:OK
- 400:Bad Request,要求有問題,例如參數錯誤
- 401:Unauthorized,沒有認證資訊
- 403:Forbidden,禁止要求
- 404:Not Found,找不到該路徑
- 500:Internal Server Error,伺服器內部錯誤
- 501:Not Implemented,未實作
- 503:Service Unavailable,伺服器目前沒辦法回應,可能是過載或是正在維修
什麼是port,可以吃嗎?
電腦的IP就像是電腦的地址一樣,別人可以透過網路連到你家的地址,但是你的電腦上可能有很多服務,比如說網站、Email、FTP,他們分別架設在不同的port上,這就像是銀行中的不同的服務窗口,每個窗口都有一個特定的服務,如果我電腦的的IP是140.115.75.5
,軟體服務開在port 3000上,那麼對別人來說就是http//:140.115.75.5:3000
常看到的預設port
80
- 用於網頁瀏覽,如果你的網站架設在http://127.0.0.1:80
等同於http://127.0.0.1
22
- 用於SSH連線,一種比較安全的連線方式,很多線上的機器都要用ssh的方式才能連線443
- 用於https
,https
是加過密的http
,這僅一個字母S的差別代表「安全(secure)」,沒有https
的網站,你傳輸的資料內容有可能遭攔截竊聽,如果線上刷卡的資料被盜取就會很慘,所以線上銀行一定都是https
參考資料:什麼是port