编程语言
首页 > 编程语言> > javascript – 在节点js中使用REPL

javascript – 在节点js中使用REPL

作者:互联网

> nodejs中REPL的用途是什么?
>使用REPL有哪些用例/场景?
>我应该何时在nodejs中使用REPL节点模块?

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

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

解决方法:

What are the use-cases/scenario for using REPL?

我经常在技术会谈中看到它(或Chrome的控制台,这也是一个JavaScript REPL),作为一种快速的方式来展示不同的表达方式评估的内容.让我们想象一下你在JavaScript中谈论Equality并希望展示NaN strangely is not equal to itself.

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

>在终端中运行没有参数的节点(这会启动REPL)
>输入NaN == NaN并按Enter键(REPL将评估表达式)
>假装对输出是错误感到惊讶

When should I use the REPL node module in nodejs?

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

例子

复制调用节点显示的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(" ")

您现在可以运行节点fs-repl,您将获得以下输出:

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

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

标签:node-modules,javascript,node-js,read-eval-print-loop
来源: https://codeday.me/bug/20190828/1748847.html