官方網站:https://nodejs.org/
簡介
Node.js 是一個開放原始碼、跨平台的、可用於伺服器端和網路應用的執行環境。Node.js 應用 JavaScript 語言寫成,在 Node.js 執行時執行。
技術特性
- Node.js 以單執行緒執行,使用非阻塞 I/O 呼叫,這樣既可以支援數以萬計的並行連線,又不會因多執行緒本身的特點而帶來麻煩。
- Node.js 將其註冊到作業系統中,這樣可以及時注意到新連線的產生。
- 與其他伺服器程式不同的是,Node.js 不使用行程或執行緒處理連線,而是採用事件迴圈來處理並行連線。
設定 npm init 預設值
npm 會使用你家目錄下的 ~/.npmrc 檔案內容作為預設初始化的設定,你也可以使用 npm config 指令來設定,如下:
1 | npm config set init-author-name "Poy Chang" |
初始化 npm 專案請使用 npm init,若想要全部套用預設值,可使用 npm -y 指令。
REF:Change Default NPM License
基本程式範例
參考資料:https://zh.wikipedia.org/wiki/Node.js
用 Node.js 撰寫的 HTTP Server 版 hello world 範例:
1 | var http = require('http'); |
另一個簡單的 TCP 伺服器範例,監聽(Listening)埠 7000 並輸出 (echo)之前輸入的訊息:
1 | var net = require('net'); |
處理 CORS 連線
參考資料:
- expressjs/cors套件
- client 範例程式碼:node-cors-client
- server 範例程式碼:node-cors-server
- 使用 JQuery 演示 CORS 之 DEMO 網頁:What happens without CORS?
1 | /*jslint nodejs: true*/ |
檢查檔案是否存在
參考資料:Check synchronously if file/directory exists in Node.js
使用 node.js 的 API:fs.access
注意!使用此方法時,若被檢查的檔案不存在,將回傳 error,適合用在你期待該檔案必須存在時
1 | var fs = require('fs'); |
背景執行
參考資料:node.js as a background service
推薦的解決方案:
Linux 解法:Linix 系統幾乎都內建systemd,擁有處理各項任務的能力,這讓你不再需要forever、monit等額外的程式來控制 node 程式
步驟:
1.建立myapp.service檔案(可以將 myapp 替換成你想要的名稱)
2.內容包含如下:
1 | [Unit] |
3.將檔案複製至/etc/systemd/system
4.Start it with systemctl start myapp.
5.Enable it to run on boot with systemctl enable myapp.
6.See logs with journalctl -u myapp
More details at: How we deploy node apps on Linux, 2016 edition
參考資料: