node.js 學習心得(VSCode)
===
###### tags: `JavaScript` `js` `node.js` `VSCode` `Programming language` `程式語言`
---
下載 node.js並安裝 https://nodejs.org/en/download/
* 記得要重開 VSCode 或 Command line,才會吃的到環境變數
參考 https://code.visualstudio.com/docs/nodejs/nodejs-tutorial 熟悉一下 node.js
要試玩的話 可以建立一個 app.js
寫上程式碼測試看看
```javascript=
var msg = 'Hello World';
console.log(msg);
```
vscode 下面的是窗會顯示 `Hello World`

command line 模式
輸入
```bash=
node app.js
```
也能看到 command line 出現 `Hello World`
---
要做 web 安裝一下 express
```bash=
npm install -g express-generator
```
輸入指令產生 web 專案 expAp
```bash=
express expAp
```
輸入指令安裝相關套件
```bash=
npm install
```
沒使用 npm install 會有錯誤訊息

* 要記得輸入 npm install
輸入指令開啟 Node.js web server
```bash=
npm start
```
開啟網頁 localhost:3000 就能看到 node.js web server
PS-記得允許防火牆設定
---
使用 express-generator 產生的專案內容程式碼比較多
如果自己建立也可以
內容會比較乾淨一點
容易閱讀
---
首先輸入 npm init
會要你輸入一些資訊
要計一下 entry point 後面的檔名 (可能是 index.js)
之後寫 code 都是寫在這裡面
指令執行完畢後
會產生一個 package.json
這個是用來描述專案內容
新建 express 專案
只要輸入 npm install express --save

建立 index.js 檔案並寫入程式碼
```javascript=
var express=require("express");
var app=express();// 產生 Express Application 物件
app.get("/",function(req, res){ // 使用者連線到伺服器根目錄(/)做出回應
res.send("Hello <b>World</b>");
});
app.get("/mypath",function(req, res){ // 使用者連線到伺服器 /mypath 做出回應
res.send("This is my path.");
});
app.listen(3000,function(){
console.log("伺服器已經啟動在 http://localhost:3000/");
});
```
在命令列輸入 node index.js 啟動程式

ctrl+c 結束程式
由上面程式碼可以知道
```javascript=
app.get("/mypath",function(req, res){ // 使用者連線到伺服器 /mypath 做出回應
res.send("This is my path.");
});
```
/mypath 可以訂定你想要的 path 譬如 /addUser
function{}內寫入你要提供的服務功能 譬如提供新增 user 資料到資料庫
## 自架 HTTP 伺服器
安裝 http-server
```bash=
npm install -g http-server
```
放上自己寫的 index.html 到目錄內
輸入
```bash=
hs
```
就會有 http 伺服器了

## Ubuntu install node.js&npm
```
sudo apt-get update
sudo apt-get install -y nodejs
sudo apt-get install npm
```
## 參考資料
[使用VS Code開發Node.js](https://studyhost.blogspot.com/2018/06/vs-codenodejs.html)
[vscode 在 java script 中下中斷](https://hackmd.io/@chiisen/rJ-Tqmfo8)
[Node.js Express 框架快速入門:npm 指令,使用 Express 框架 By 彭彭](https://www.youtube.com/watch?v=vQ4KV07bVk0)
[Node.js 實作 The F2E_ChatRoom (1) 環境建置](https://w3c.hexschool.com/blog/e2d9c79d)
我也想要建立一個聊天室
## 強烈推薦
[VSCode 必裝套件](https://hackmd.io/@sam-liaw/BJnLhni7U)