nodejs REPL在同一行输出

问题描述 投票:0回答:1

我正在构建一个带有本地REPL的nodejs的CLI应用程序。愚蠢的样本是:

const repl = require('repl')
const myApp = require('myApp')
repl.start({
  eval: (input, context, filename, callback) => {
      const result = myApp(input)
      callback(null, result)
  },
  writer: (result) => result 
         ? 'my result: ' + result
         : ''  // <--- empty result
})

一切都很好,但是为应用的每个响应创建了换行符。我想覆盖此行为,并决定是否创建新行。

示例让我们假装该应用程序是一个计算器:

$ node index.js
add 5
add 3
result
8

因为add命令没有任何结果,所以应该在下一行中插入一个新命令。但是,我从上面的代码得到的是:

$ node index.js
add 5

add 3

result
8

在任何一个machazxswpoi电话后添加一个空行。

我怎么能阻止这个?

node.js command-line-interface read-eval-print-loop
1个回答
0
投票

所以我发现有一个我可以设置的参数,add。如果为true,当您调用ignoreUndefined(空结果案例)时,它将不会添加新行。

因此,在上面的例子中:

callback(null, undefined)

docs:const repl = require('repl') const myApp = require('myApp') repl.start({ ignoreUndefined: true, eval: (input, context, filename, callback) => { const result = myApp(input) callback(null, result) }, writer: (result) => result ? 'my result: ' + result : undefined // <--- empty result })

类似的问题:https://nodejs.org/api/repl.html

© www.soinside.com 2019 - 2024. All rights reserved.