差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| it:node:命令行 [2021-10-16 05:07] – [交互工具] goldentianya | it:node:命令行 [2023-08-07 16:19] (当前版本) – [建立程序] goldentianya | ||
|---|---|---|---|
| 行 2: | 行 2: | ||
| ===== 建立程序 ===== | ===== 建立程序 ===== | ||
| + | |||
| + | 准备:在服务器上安装 node.js 以及 npm | ||
| + | <code shell> | ||
| + | sudo apt install nodejs | ||
| + | sudo apt install npm | ||
| + | </ | ||
| 首先初始化一個項目((a> | 首先初始化一個項目((a> | ||
| 行 15: | 行 21: | ||
| </ | </ | ||
| - | 在本目錄下全局安裝 <color # | + | 在本目錄下全局安裝 <color # |
| ===== 交互式命令行 ===== | ===== 交互式命令行 ===== | ||
| 行 41: | 行 47: | ||
| * 具體使用方式請參照 api 工程以及 ((a)) 文章。 | * 具體使用方式請參照 api 工程以及 ((a)) 文章。 | ||
| - | ====== | + | ====== |
| - | 為了不讓console的輸出結果太長,需要清除臨時顯示的行,借助 readline.js 庫文件((c> | + | [[https:// |
| + | |||
| + | 為了不讓console的輸出結果太長,需要清除臨時顯示的行,借助 readline.js 庫文件((b> | ||
| <code javascript> | <code javascript> | ||
| 行 55: | 行 63: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | 常用命令 | ||
| + | * clearLine() | ||
| + | * cursorTo() | ||
| + | * moveCursor() | ||
| + | * clearScreenDown() | ||
| + | * createInterface() | ||
| + | * emitKeypressEvents() | ||
| + | |||
| + | **接受用户输入** | ||
| + | <code javascript> | ||
| + | this.RL = readline.createInterface({input: | ||
| + | // 监听 line 事件 | ||
| + | this.RL.on(' | ||
| + | this.observer.next(line) | ||
| + | this.counter++ | ||
| + | this.RL.pause() | ||
| + | }) | ||
| + | // 外部等待输入 | ||
| + | this.RL.setPrompt(prompt); | ||
| + | this.RL.prompt(); | ||
| + | return new Promise((resolve, | ||
| + | this.observer.subscribe((value: | ||
| + | resolve(value.trim()) | ||
| + | }); | ||
| + | }) | ||
| + | </ | ||
| + | |||
| + | 调用 <color # | ||
| ====== 交互工具 ====== | ====== 交互工具 ====== | ||
| - | 需要借助 inquire.js ((c> | + | 需要借助 inquire.js ((c> |
| 安裝工具 <color # | 安裝工具 <color # | ||
