Nodejs新手區


什麼是Nodejs

Node.js 是 Ryan Dahl 基於 Google 的 V8 引擎於 2009 年釋出的一個 JavaScript 開發平台,主要聚焦於 Web 程式的開發,通常用被來寫網站。

其實這樣的介紹還是有點難懂,簡單來說我們看的網頁都必須從「伺服器」中取得,而這些「伺服器」可能是各種程式語言撰寫的,但就是沒有Javascript,而Nodejs就是發明來用Javascript製作伺服器程式,酷吧!

下面這位就是Ryan Dahl,Nodejs的創始人↓


安裝Nodejs,凡事都從 Hello World 開始

  1. 總之,我們先下載Nodejs,如果還不是不太知道怎麼安裝可以看看教學影片

  2. 打開命令提示字元或是終端機,輸入node -vnode --version去檢查看看nodejs版本

  3. 馬上開始我們第一個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 - 用於httpshttps是加過密的http,這僅一個字母S的差別代表「安全(secure)」,沒有https的網站,你傳輸的資料內容有可能遭攔截竊聽,如果線上刷卡的資料被盜取就會很慘,所以線上銀行一定都是https

參考資料:什麼是port


學習如何用chrome-devtool觀看 network request

results matching ""

    No results matching ""