走進 Node.js 世界的第一步就是 Command Line ,因此 API 從 Command Line Options 說起在適合不過。
此外就在這個月有幾個主要更新,
[來源] 6 號官方更新了所有在線的版本,版本號更新如下:
[來源] 3 號將 Node.js v7 的 Chrome v8 由 v5.1 升級至 v5.4
node [options] [v8 options] [script.js | -e "script"] [arguments]
node debug [script.js | -e "script" | <host>:<port>] …
node --v8-options
以下範例為透過 Node.js 建立 HTTP Server ,
app.js
檔案,檔案內容如下:
// 使用 HTTP API
const http = require('http');
// 取得設定的 PORT
const port = process.env.PORT || 3000;
// 設定 Server
const server = http.createServer((req, res) => {
res.end('Hello World\n');
});
// 啟用 Server
server.listen(port, () => {
console.log(`Server running at http://localhost:${port}/`);
});
只需輸入 node app.js
, Command 上會顯示 Server running at http://localhost:3000/ 即表示 Server 執行中,此時在 Browser 中輸入 localhost:3000 ,頁面會顯示開發人員都熟悉不過的 Hello World 。恭喜你成為 Node.js 的一員! XD
在些資料除了透過 官網 取得外,也可以透過在 Command Line 下 man node
取得。 man 是什麼呢?man 是 manual (手冊) 的簡寫,若有興趣了解更多,可以到中文 man Linux
- 鳥哥的 Linux 私房菜 朝聖。https://nodejs.org/dist/latest-v6.x/docs/api/process.html
簡碼 | 完整 | 加入時的版本碼 | 說明 |
---|---|---|---|
-v | --version | v0.1.3 | 查詢當前使用的 Node.js 版本號 |
-h | --help | v0.1.3 | 印出所有 Options 並簡短說明,等於是 man node 的精簡版 |
-e | --eval | v0.5.2 | 使用方式 -e "script" ;將 script 的內容當做 JavaScript 執行,也可以透過 REPL ( API 尋寶記 趕稿中 ) 的預先定義,當做 JavaScript 的參數使用 |
-p | v0.6.4 | 使用方式 -p "script" ;將 script return 的內容印出 |
|
-c | --check | v5.0.0 | 檢查輸入的 script 是否正確 |
-i | --interactive | v0.7.7 | 既使 terminal 的 stdin ( API 尋寶記 趕稿中 ) 不在,依舊開啟 REPL |
-r | --require | v1.6.0 | 使用方式 -r module (require() 相同);啟動時預先載入 module |
--no-deprecation | v0.8.0 | 使用到棄用的特性時,暫止警告訊息 | |
--trace-deprecation | v0.8.0 | 使用到棄用的特性時,印出警告訊息 | |
--throw-deprecation | v0.11.14 | 使用到棄用的特性時,拋出警告訊息 | |
--no-warnings | v6.0.0 | 暫停所有警告訊息 | |
--trace-warnings | v6.0.0 | 印出所有警告訊息 | |
--trace-sync-io | v2.1.0 | 當檢測第一個事件環循時,就印出追蹤到的 I/O | |
--zero-fill-buffers | v6.0.0 | 自動填 0 到 Buffer 與 SlowBuffer 中 (Buffer ( API 尋寶記 趕稿中 )) | |
--preserve-symlinks | v6.3.0 | 當解析與暫停的 Module 時,指示 Module loader 保留符號鏈接 (symbolic links) 。為了扼要的說明,內容上做了取捨,建議想了解更詳細可以到 文件 ,裡面有範例能讓你更清楚這個參數的用意 | |
--track-heap-objects | v2.4.0 | 追蹤 heap snapshots 的 heap object 分配 | |
--prof-process | v6.0.0 | 使用 Chrome v8 的 --prof 輸出 Chrome v8 的分析 |
|
--v8-options | v0.1.3 | 印出 Chrome v8 的 Command Line Options ,提醒一點是 - 可以用 _ 替換,如 --stack-trace-limit 等於 --stack_trace_limit |
|
--tls-cipher-list=list | v4.0.0 | 指定備用默認TLS加密列表 (預設需要使用加密) | |
--enable-fips | v6.0.0 | 在啟動時啟用 FIPS-compliant 加密 (需要 Node.js 建置時使用 ./configure --openssl-fips ) |
|
--force-fips | v6.0.0 | 在啟動時強制使用 FIPS-compliant 加密 (要求和 --enable-fips 相同) |
|
--openssl-config=file | v6.9.0 | 在啟動時讀取 OpenSSL 設定檔,此外也可以用在 FIPS-compliant 加密上 | |
--icu-data-dir=file | v0.11.15 | 指定 ICU 資料載入的位置,使用這個參數會覆寫環境變數 NODE_ICU_DATA |
註: --no-deprecation
、 --trace-deprecation
、 --throw-deprecation
、 --no-warnings
、 --trace-warnings
實際使用情境,日後會再試試,若有人使用經驗,希望你能在下方分享。
指令 | 加入時的版本碼 | 說明 |
---|---|---|
NODE_DEBUG=module[,…] | v0.1.32 | 印出 Core Moduel 的 Debug 資訊;使用 , 分隔 |
NODE_PATH=path[:…] | v.0.1.32 | 指定 Module 的搜索目錄前綴路徑列表;分隔需注意, Windows 用 ; ,其餘用 : |
NODE_DISABLE_COLORS=1 | v0.3.0 | 當設置為 1 將不會在 REPL 中使用顏色 |
NODE_ICU_DATA=file | v0.11.15 | ICU (Intl object) 的資料路徑,此外編譯時 |
NODE_REPL_HISTORY=file | v3.0.0 | 保留 REPL 歷史,預設放在 ~/.node_repl_history ;若配置設為 "" 和 " " 禁止 REPL 被記錄 |
NODE_TTY_UNSAFE_ASYNC=1 | v6.4.0 | 當設置為 1 ,輸出到 Terminal 時 stdout 和 stderr 時將會以非阻塞 (non-blocking) 與非同步 (asynchronous) 的方式進行 stdio,此時 stdio 不會在離開程序時被丟棄和發生錯誤;官方不建議使用此模式 (Use of this mode is not recommended) |
註: