日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

中國最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2

nodejs教程

Node.js REPL

閱讀 (2494)

REPL

穩定性: 3 - 穩定

Read-Eval-Print-Loop (REPL 讀取-執行-輸出循環)即可作為獨立程序,也可以集成到其他程序中。REPL 提供了一種交互的執行 JavaScript 并查看輸出結果的方法。可以用來調試,測試,或僅是用來試試。

在命令行中不帶任何參數的執行 node ,就是 REPL 模式。它提供了簡單的 emacs 行編輯。

mjr:~$ node
Type '.help' for options.
> a = [ 1, 2, 3];
[ 1, 2, 3 ]
> a.forEach(function (v) {
...   console.log(v);
...   });
1
2
3

若想使用高級的編輯模式,使用環境變量 NODE_NO_READLINE=1 打開 node。這樣會開啟 REPL 模式,允許你使用 rlwrap

例如,你可以添加以下代碼到你的 bashrc 文件里。

alias node="env NODE_NO_READLINE=1 rlwrap node"

repl.start(options)

啟動并返回一個 REPLServer 實例。它繼承自[Readline Interface][]。接收的參數 "options" 有以下值:

  • prompt - 所有輸入輸出的提示符和流。默認是 >.

  • input - 需要監聽的可讀流,默認 process.stdin.

  • output - 用來輸出數據的可寫流,默認為 process.stdout.

  • terminal - 如果 stream 被當成 TTY,并且有 ANSI/VT100 轉義, 傳true。默認在實例的輸出流上檢查isTTY

  • eval - 用來對每一行進行求值的函數。默認為 eval() 的異步封裝。參見后面的自定義 eval例子。

  • useColors - 寫函數輸出是否有顏色。如果設定了不同的 writer 函數則無效。默認為 repl 的 terminal 值。

  • useGlobal - 如果為 true ,則 repl 將會使用全局對象,而不是在獨立的上下文中運行scripts。默認為 false

  • ignoreUndefined - 如果為 true,repl 不會輸出未定義命令的返回值。默認為 false

  • writer - 每個命令行被求值時都會調用這個函數,它會返回格式化顯示內容(包括顏色)。默認是 util.inspect

如果有以下特性,可以使用自己的 eval函數:

function eval(cmd, context, filename, callback) {
  callback(null, result);
}

在同一個 node 的運行實例上,可以打開多個 REPLs。每個都會共享一個全局對象,但會有獨立的 I/O。

以下的例子,在stdin, Unix socket, 和 TCP socket 上開啟 REPL :

var net = require("net"),
    repl = require("repl");

connections = 0;

repl.start({
  prompt: "node via stdin> ",
  input: process.stdin,
  output: process.stdout
});

net.createServer(function (socket) {
  connections += 1;
  repl.start({
    prompt: "node via Unix socket> ",
    input: socket,
    output: socket
  }).on('exit', function() {
    socket.end();
  })
}).listen("/tmp/node-repl-sock");

net.createServer(function (socket) {
  connections += 1;
  repl.start({
    prompt: "node via TCP socket> ",
    input: socket,
    output: socket
  }).on('exit', function() {
    socket.end();
  });
}).listen(5001);

從命令行運行這個程序,將會在 stdin 上啟動 REPL。其他的 REPL 客戶端可能通過 Unix socket 或 TCP socket 連接。telnet 常用于連接 TCP socket, socat 用于連接Unix 和 TCP sockets

從Unix socket-based 服務器啟動 REPL(而非stdin),你可以建立長連接,不用重啟它們。

通過 net.Servernet.Socket 實例運行"full-featured" (terminal) REPL的例子,參見: https://gist.github.com/2209310

通過 curl(1) 實例運行 REPL的例子,參見: https://gist.github.com/2053342

Event: 'exit'

function () {}

當用戶通過預定義的方式退出 REPL 將會觸發這個事件。預定義的方式包括,在 repl 里輸入 .exit,按 Ctrl+C 兩次來發送 SIGINT 信號,或者在 input 流上按 Ctrl+D 來發送"end"。

監聽 exit 的例子:

r.on('exit', function () {
  console.log('Got "exit" event from repl!');
  process.exit();
});

Event: 'reset'

function (context) {}

重置 REPL 的上下文的時候觸發。當你輸入.clear會重置。如果你用 { useGlobal: true } 啟動 repl,那這個事件永遠不會被觸發。

監聽 reset 的例子:

// Extend the initial repl context.
r = repl.start({ options ... });
someExtension.extend(r.context);

// When a new context is created extend it as well.
r.on('reset', function (context) {
  console.log('repl has a new context');
  someExtension.extend(context);
});

REPL 特性

在 REPL 里, Control+D 會退出。可以輸入多行表達式。支持全局變量和局部變量的 TAB 自動補全。

特殊變量_ (下劃線)包含上一個表達式的結果。

> [ "a", "b", "c" ]
[ 'a', 'b', 'c' ]
> _.length
3
> _ += 1
4

REPL支持在全局域里訪問任何變量。將變量賦值個和REPLServer關聯的上下文對象,你可以顯示的講變量暴露給 REPL,例如:

// repl_test.js
var repl = require("repl"),
    msg = "message";

repl.start("> ").context.m = msg;

context 對象里的東西,會以局部變量的形式出現:

mjr:~$ node repl_test.js
> m
'message'

有一些特殊的REPL命令:

  • .break - 當你輸入多行表達式時,也許你走神了或者不想完成了,.break 可以重新開始。
  • .clear - 重置 context 對象為空對象,并且清空多行表達式。
  • .exit - 關閉輸入/輸出流,會讓 REPL 退出。
  • .help - 打印這些特殊命令。
  • .save - 保存當前 REPL 會話到文件。

    .save ./file/to/save.js

  • .load - 加載一個文件到當前REPL 會話

    .load ./file/to/load.js

下面的組合鍵在 REPL 中有以下效果:

  • <ctrl>C - 和 .break 鍵類似. 在一個空行連按兩次會強制退出。
  • <ctrl>D - 和 .exit 鍵類似。
關閉
程序員人生
主站蜘蛛池模板: 亚洲第一页在线 | 国产在线精品91国自产拍免费 | 欧美中文字幕一区二区三区 | 国产精品久久久久久久久久东京 | 精品理论片 | 久久久免费av | 91超碰在线 | 日韩欧美亚洲 | 在线免费观看av网站 | 精品国产黄色片 | 成人一区二 | 麻豆视频免费观看 | 黄色免费大片 | 欧美一二 | 综合国产| 国产精品毛片久久 | 日韩欧美在线观看视频网站 | 91久久国产 | 成人av中文字幕 | 国产一级免费 | 精品久久久一区二区 | 新电影天堂 | 国产精品亚洲一区二区三区在线观看 | 中文字幕在线国产 | 国产美女视频一区 | 欧美在线综合 | 91香蕉视频污 | 亚洲综合久久久 | www.色在线 | 午夜成人在线视频 | 欧区一欧区二欧区三免费 | 自拍视频在线 | 日本三级在线视频 | 亚洲国产日韩精品 | av电影在线网站 | 美国黄色毛片女人性生活片 | 黄色在线网站 | 亚洲午夜久久久久久久久久久 | 男女毛片| 欧美不卡激情三级在线观看 | 免费成人黄色 |