iT邦幫忙

6

【我可以你也可以的Node.js】第二篇 - 曖昧萌芽的第一句話

如果你是因為標題點進來的...
恭喜你被我騙點閱了,現在返回也來不及,除非你返回在點進來一次,不信你試試看。ლ(́◕◞౪◟◕‵ლ)
主要是這週情人節應景一下~


這篇主要學習目標( • ̀ω•́ )

嗨各位~ 我是Robin,我又來了~
沒錯!你想得沒錯第二篇我們要說的就是Promise。(๑•́ ₃ •̀๑)

咳嗯~咳嗯~
今天重點是要說的是Hello world啦xD
來一起牽手牽__來學習 (灬ºωº灬)
正式來看看這篇主要要介紹的幾點項目

  1. Node 情竇初開的初次認識
  2. Node 曖昧的交換聯絡方式
  3. Node 讓你心跳加速感情升溫常見基本命令
  4. Node 第一次見面說Hello!保證成功!

為什麼?ლ(゚д゚ლ)

因為我相信大部分人接觸第一個語言的第一步就是想辦法印出Hello world,又或是一些比較夯的語言教程第一個幾乎都是Hello world。(凡事都有特例xD)

看看那些第一個教程教Hello world 的語言各個都發光發熱。
再看看我以前對心儀對象的第一句話都是...
給約嗎ლ(・´ェ・ლ)?給約嗎ლ(・´ェ・ლ)?給約嗎ლ(・´ェ・ლ)?給約嗎ლ(・´ェ・ლ)?
難怪我沒有發光發熱QQ

假使我以前就對她說...
Hello world!ლ(́◕◞౪◟◕‵ლ)Hello world!ლ(́◕◞౪◟◕‵ლ)Hello world!ლ(́◕◞౪◟◕‵ლ)
搞不好我就會成功了(◔౪◔) (才不會


Node 情竇初開的初次認識

相信各位在跟帥哥或是妹子第一次認識的時候總是會先調查或是先聊聊熟悉彼此,那一開始就當然要先說一下關於Node我在書上看到的一些有趣,且應該要知道的項目條列出來。

  • Node.js允許通過JavaScript和一系列模組來編寫伺服器端應用和網路相關的應用。
    From 維基百科

    簡單來說。:.゚ヽ(*´∀`)ノ゚.:。
    Node Application = Javascript+(一堆module)
    這些module 可以透過npm進行管理與安裝(之後會有獨立的文章做說明)

  • NodeJs與其他語言最大的差異是非阻塞式

    簡單來說就是多條程式碼是可以同時被執行的,通過callback或是其他方式的回呼得知程式已執行完成。
    詳細的可以參考此文章或是自行Google研究
    (我自己因為這個設計在Nightwatch.js蛋疼了好一陣子...இдஇ)

  • 大部分實作是使用Google爸爸的V8引擎

    這個引擎簡單來說就是Google為了Chrome所設計,這個引擎把原本多年的Javascript一般的直譯為了提升速度用JIT(just-in-time)編譯成機械碼,變好快好快好讚好讚。
    (其實我也感受不出來快在哪讚在哪Orz 我是麻瓜...)
    ヽ(∀゚ )人(゚∀゚)人( ゚∀)人(∀゚ )人(゚∀゚)人( ゚∀)ノ
    然後這引擎是用C++寫的。From 本書
    如果要看更詳盡的也可以看這位大大的文章
    JS 原力覺醒 Day02 - JavaScript V8 引擎

  • 現在Node.js可以無痛直接使用ES6的功能

    以前要使用新的ES6功能時,
    要在執行程式時使用harmony旗標。
    那是什麼?不重要!(說好的求知慾?(눈‸눈))
    你只要知道現在可以直接爽爽用就好了~讚讚。
    But!(((゚Д゚;)))
    要在V8的穩定版本才預設開啟不用旗標。
    不然都要像是以下使用旗標才能使用

    node --harmoney test.js 
    

以上。
如果有一定要知道但我沒有列出來的可以留言補充跟我說~

另外!這邊這邊還有一個小故事我覺得滿有趣的有興趣可以看一下。

Node.js第一個第一個官方釋出版本是Node 4.0,不是Node 1.0
原因是因為有一群Node維護者因為io.js派認為Joyent這家維護Node
的公司對於Node的開放不夠積極和對於V8引擎支援很落後因此吵架分裂組成io.js,後來兩派吵架和好之後複合把兩派程式合併,變成了官方第一版Node 4.0。
所以 Node 4.0 = Node 1.0 + io.js 3.0


Node 曖昧的交換聯絡方式

這部分其實就只是安裝的部分啦~
想跟妹子或帥哥有了初次認識之後,
想要進一步是不是得要交換聯絡方式,
光紙上談兵是沒用的!(灬ºωº灬)

這部分書上說看官方比用寫的還快(嗯~當然xDD)
但是我覺得各位讀者都讀到這了我還是附上連結和懶人包xDD
官方連結點我
不想去官方看我的下面~(≧∀≦)ゞ

MacOS 使用brew(真香)

brew install node

Ubuntu 使用apt-get(真爽)

sudo apt-get install -y nodejs

Windows的同學~ 使用安裝器

直接點我


Node 讓你心跳加速感情升溫之常見基本命令

各位啊~加完人家聯絡方式不管是Line還是Facebook
總是要踏出第一步跟人家私底下聊一下吧!

安裝完之後要怎麼開始咧~
打開你的Terminal!(該面對的還是要面對!)
打指令才是工程師的浪漫啊xDD
以下舉幾個感覺比較常用的

列出版本號

node -v

執行Node應用程式

node <fileName>

Debug模式執行Node應用程式

Node.js提供除錯模式,使用以下指令可以參考這篇文章所列舉的指令來除錯
(看起來好猛

node debug <fileName>

列出所有選項和參數

node --help

檢查Node應用程式的語法

這邊他不會執行程式只會幫你檢查語法而已

node -c <fileName>
or
node --check <fileName> 

對一行Node腳本求值輸出結果

這邊以書中的可以檢查環境變數時以輸出process.env屬性所有值為例
(這部分他說第二章節會談到環境變數時特別有用,目前我也不是那麼了解,等我讀到那在特別做註記吧~)

node -p "process.env"

升級更新Node

先使用上面提到的node -v可以先看一下版本

使用以下套件安裝程序(Windows不用sudo)

sudo apt-get update
sudo apt-get upgrade --show-upgraded

使用npm升級Node(我比較頃向用這個)

sudo npm cache clean -f
sudo npm install -g

sudo n stable //如果要使用最新的穩定版請用這個
sudo n latest //如果要使用真的最新版本請用這個

之後還會提npm 所以這篇先不要~ 雖然也沒啥xD
有用過python pip的同學,我覺得大概就是類似的東西
(如果完全不一樣請鞭QQ)


Node 第一次見面說Hello!保證成功!

如同一開始說的,
假如我一開始是對心儀的女生說"Hello" 不要說給約嗎?
搞不好...好不巧...
我就能成功~
在Node也是一樣(胡扯
我們先來建立一個helloWorld.js檔

完整Code

var http = require('http');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World!');
}).listen(8080);
console.log('HTTP server is listening at port 8080...');

然後再terminal運行這支檔案

node helloWorld.js


接著我們可以直接打開瀏覽器輸入

http://localhost:8080/

以上。

理解Code

第一部分

var http = require('http');

這行的意思是匯入http這個模組然後指派給'http'這個變數

第二部分

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World!');
}).listen(8080);

這部分簡單來說就是使用剛剛指派的http變數建立一個http伺服器,
然後用callback的方式,
當有人訪問這個http伺服器時做下面callback的內容。
而這邊callback可以指派兩個參數(req,res)
分別是指request(請求),response(回應)
而我這邊做的動作分別是
分配head為200的statusCode表示正常
然後內容不管是誰訪問都印出"Hello World"

如果要參考更詳細的解說我覺得這位大大這篇寫的不錯可以參考一下

以上。

感謝各位大大看到這參與我一起學習。
有需要補充或是寫錯的部分再麻煩留言跟我說QQ


這週的小心得

原本上週六當天要發兩篇
但是手殘...拉到上一頁內容直接消失。
(◢▆▅▄▃崩╰(〒皿〒)╯潰▃▄▅▇◣)
不過以上都不是理由也不是藉口,該還的還是要還。
內容消失是事實,重新編排也是事實Orz...
(現在我都用HackMD先打草稿因為他會隨時幫我備份xD)
當我翻開這本書的第一章節說時遲那時快很快的看完了,
正當我面帶著微笑翻到了第二章節...
嗯~我的笑容已不再 ( ´゚Д゚`)
我真的是很多都不會欸இдஇ

是時候要來一下最近滿夯的自信廢

不過我會努力的(╥﹏╥)

謝謝各位! 下集待續~

P.S.
不知道像我一樣是真的什麼都不會,就來參加這寫文馬拉松的多不多QQ
跟我一樣的在底下留言可以讓我知道...可以互相取暖xD


參考來源:

最上方Banner設計於fotojet
我買的這本
JS 原力覺醒 Day02 - JavaScript V8 引擎
Node.js學習筆記一:Node.js的Hello World
nodeJs教程
Hello World source code


2 則留言

1
RongSon
iT邦新手 5 級 ‧ 2020-02-19 11:32:41

有笑有推 XD
看你的文章會開心~

Robin iT邦新手 5 級‧ 2020-02-20 13:52:38 檢舉

哇~~感謝大大賞識XDD
我以為我這種比較白話的方式,比較不討喜畢竟有些人會比較愛直接講述code或範例的不想看一堆幹話 /images/emoticon/emoticon02.gif
我會努力的~ 感謝

0
superj80820
iT邦新手 5 級 ‧ 2020-02-22 17:35:17

很逗又有內容的文章

我要留言

立即登入留言