---
# System prepended metadata

title: V8、node.js - 基本觀念 (環境安裝)

---

六角體驗營
# V8、node.js - 基本觀念 (環境安裝)
## V8 引擎介紹

> V8使node.js可透過 js 語法書寫(編譯)
![](https://hackmd.io/_uploads/Bk0LnZXWa.png =80%x)

* <h4>V8</h4> 

  - 是由Google開發的一個高性能**JavaScript引擎**，用於執行JavaScript代碼。它是開源的並且用C++編寫，主要用於Google Chrome瀏覽器中，但也被許多其他瀏覽器採用。V8引擎負責將JavaScript編譯為程式碼，以實現高速執行。
    
* <h4>Node.js</h4>

  - Node.js 是一個基於**V8引擎開源運行環境**，用於在伺服器端執行JavaScript代碼。它的目標是使開發者能夠使用JavaScript來**構建伺服器應用程序**，並提供了一個**事件驅動**的**非阻塞I/O模型**，使其能夠處理大量並發請求。Node.js具有廣泛的模組和套件生態系統，使開發者能夠輕鬆構建各種類型的伺服器應用。

 
    > - 事件驅動：
    > 在 Node.js 中，許多操作（如讀取文件、發送請求）是基於事件的。這意味著當某個操作完成時，會觸發一個事件，然後系統會執行相應的回調函數。這種模型允許開發者建立非常有效的應用程序，因為它避免了傳統同步方法可能引起的阻塞。
    > - I/O模型: 
    > 程式中處理輸入和輸出（I/O）操作的方式和方法。
    > - 非阻塞 I/O：
    > 在傳統的同步 I/O 模型中，一個操作可能會導致整個應用程序的阻塞，直到操作完成。在非阻塞 I/O 模型中，當一個 I/O 操作發起時，**應用程序繼續執行而不等待操作完成**。當操作完成時，**通過事件機制**通知應用程序並處理相應的回調。






## Node.js 架構介紹
* deps: 放node.js需要的插件
* src: node.js仰賴V8寫了很多 C++ 語言，JS的code可透過 C++ 編譯執行 (C++為node.js核心語言之一)
* lib: API文件 (如http可執行或開啟web伺服器)
  * function createServer

##  安裝與環境
> [官方載點](https://nodejs.org/zh-tw) (**建議選擇長期維護版**)
> github 可看到版本維護日期 [(node.js/Release)](https://github.com/nodejs/Release)

![](https://hackmd.io/_uploads/S1_3VJBZ6.png =90%x)

#### cmd 查看是否安裝成功
```=
C:\Users\user>node --version

//有版本號即成功
v18.18.1.
```

##  透過 Node.js 執行 JS 檔案
透過cmd

* 1. 指向指定資料夾
```
C:\Users\user\Desktop\project\test>cd node.js
```
* 2-1. 透過 node 執行js
```
C:\Users\user\Desktop\project\test\node.js>node all.js
```
* 2-2. 或透過nodemon 執行監聽js 
```
C:\Users\user\Desktop\project\test\node.js>nodemon all.js
```
#### 3. 透過vscode使用node.js除錯
   
* 3-1. 右上角的run code 符號 -> 點擊開啟 output 可看到 console結果

   ![](https://hackmd.io/_uploads/r1eCokB-a.png =80%x)
   
* 3-2.透過 run and debug 執行斷點(breakpoint)

  ![](https://hackmd.io/_uploads/rkZy6ySWa.png =80%x)

* 3-3. 左側選單可觀看變數與資料夾

  ![](https://hackmd.io/_uploads/Syeta1SbT.png =80%x)
