在Node.js中使用REPL

6
  1. REPL在nodejs中的作用是什么?
  2. 使用REPL的用例/场景有哪些?
  3. 什么时候应该在nodejs中使用REPL模块?

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

但是,有人可以帮我理解上述问题吗?这样我就可以了解REPL模块的确切用法了吗?


1
如果你不需要它,就不必使用它。 - user202729
1
如果它没有出问题,就不要修复它。 - Ayush Gupta
最简单的例子(不是Node.JS REPL的实际实现)将是Chrome控制台。如果您想要创建类似的东西,请使用REPL。 - Ayush Gupta
1
我使用它快速制作了一个CRUD应用程序,与具有业务逻辑的数据库进行交互,并且您可以自定义命令执行操作,它比尝试构建UI和/或运行Web服务器更冗长且更快速。 - Gntem
我使用 REPL 实例 (node) 来测试我的模块。 - Jonas Wilms
1个回答

6

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

我经常在技术讲座中看到它(或Chrome的控制台,它也是一个JavaScript REPL),作为展示不同表达式求值的快速方式。假设你正在举行关于JavaScript平等性的演讲,并想展示NaN奇怪地不等于自身

你可以通过以下方式演示:

  • 在终端中未带参数运行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中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接