我正在使用带有本机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
,在任何0 add
调用之后添加一个空行。
如何防止这种情况?
答案 0 :(得分:0)
因此,我发现可以设置一个参数ignoreUndefined
。如果为true,则在调用callback(null, undefined)
(结果为空的情况下)时,不会添加新行。
因此,在上面的示例中:
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
})
docs:https://nodejs.org/api/repl.html
类似的问题:node.js REPL "undefined"