我正在构建一个带有本地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电话后添加一个空行。
我怎么能阻止这个?
所以我发现有一个我可以设置的参数,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
})