代码之家  ›  专栏  ›  技术社区  ›  Soorya Prakash

在node js中使用REPL

  •  6
  • Soorya Prakash  · 技术社区  · 7 年前
    1. REPL在nodejs中有什么用途?
    2. 使用REPL的用例/场景是什么?
    3. 什么时候应该在nodejs中使用REPL节点模块?

    我已经理解了API文档、如何包含REPL模块以及如何使用提示符和eval启动REPL实例。

    但有谁能帮助我理解上述问题吗?这样我才能了解REPL模块的具体使用方法?

    1 回复  |  直到 7 年前
        1
  •  6
  •   Niklas Higi Jonny Rimkus    6 年前

    使用REPL的用例/场景是什么?

    我经常看到它(或者Chrome的控制台,它是一个JavaScript REPL (以及)在技术谈话中使用,作为演示不同表达的快速方式。想象一下你在谈论 JavaScript中的相等 我想证明这一点 NaN strangely is not equal to itself .

    您可以通过以下方式证明:

    • 跑步 node 终端中没有参数(这将启动REPL)
    • 套房 NaN == NaN 和按压 进来 (REPL将计算表达式)
    • 假装对输出感到惊讶 false

    什么时候应该在nodejs中使用REPL节点模块?

    当您想要实现一个节点时。js REPL作为应用程序的一部分,例如通过web浏览器中的“远程终端”将其公开(出于安全原因,不建议这样做)。

    示例

    正在复制通过调用 节点

    const repl = require('repl')
    const server = repl.start()
    

    使用 REPLServer 的流API

    fs-repl.js 文件:

    const repl = require('repl')
    const fs = require('fs')
    const { Readable } = require('stream')
    
    const input = new fs.createReadStream('./input.js')
    
    const server = repl.start({
      input,
      output: process.stdout
    })
    

    input.js 文件:

    40 + 2
    NaN
    ["hello", "world"].join(" ")
    

    您现在可以跑步了 node fs-repl 您将获得以下输出:

    > 40 + 2
    42
    > NaN
    NaN
    > ["hello", "world"].join(" ")
    'hello world'
    

    此输出显然可以传递到 Writable stream 除了 process.stdout 通过更改 output 选项