【问题标题】:Use of REPL in node js在 node js 中使用 REPL
【发布时间】:2018-01-20 11:16:29
【问题描述】:
  1. nodejs中REPL有什么用?
  2. 使用 REPL 的用例/场景有哪些?
  3. 什么时候应该在 nodejs 中使用 REPL 节点模块?

我已经了解 API Doc,如何包含 REPL 模块以及如何使用 prompt 和 eval 启动 REPL 实例。

但是任何人都可以帮助我理解上述问题吗?这样我就可以理解 REPL 模块到底是如何使用的?

【问题讨论】:

  • ...如果你不需要它,你就不需要它。
  • 如果它没有坏,就不要修理它
  • 最简单的例子(不是 Node.JS REPL 的实际实现)将是 chrome 控制台。如果你想做这样的事情,请使用 REPL。
  • 我已经用它来快速创建一个 crud 应用程序来与内置业务逻辑的数据库进行交互,并且您可以使用自定义命令来执行操作,这比尝试构建 UI 更冗长和快速和/或运行网络服务器。
  • 我使用 REPL 实例 (node) 测试我的模块

标签: javascript node.js node-modules read-eval-print-loop


【解决方案1】:

使用 REPL 的用例/场景有哪些?

我经常在技术讲座中看到它(或 Chrome 的控制台,它也是 JavaScript REPL)作为演示不同表达式计算结果的快速方法。让我们想象一下,您正在举行一场关于 JavaScript 中的平等 的演讲,并希望表明 NaN strangely is not equal to itself

您可以通过以下方式证明这一点:

  • 在终端中不带参数运行 node(这会启动 REPL)
  • 输入 NaN == NaN 并按 Enter(REPL 将评估表达式)
  • 假装惊讶于输出是false

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

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

示例

通过调用 node 复制显示的 REPL

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'

这个输出显然可以通过更改output 选项传递到process.stdout 以外的Writable stream

【讨论】:

    猜你喜欢
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 2018-10-12
    • 2012-01-28
    • 1970-01-01
    • 2017-10-08
    相关资源
    最近更新 更多