首页 > 解决方案 > Node.js 解析终端输入

问题描述

所以我有一个ssh2服务器,我希望能够解析输入的命令,我目前正在使用该readline模块,但即使在使用退格键时它也会输出特殊字符,我不想要每个按键,我只想要按下 Enter 时整个可见行,如果我testing按预期输入并按 Enter,我的日志输出Line: "testing" 7 long,但如果我输入testing with backspaces然后按退格键 5 次,然后输入oops, mistake,它输出Line: "testing with backspaces⌂⌂⌂⌂⌂oops, mistake" 41 long

我如何“解析”这些代码以Line: "testing with backsoops, mistake" 31 long退出?

const rl = readline.createInterface(shell, shell);
rl.on('line', (line) => console.log(`Line: "${line}" ${line.length} long`));

标签: node.jsssh

解决方案


已解决,shell.isTTY要么 要么falseundefined通过更改为

const rl = readline.createInterface({
  input: shell,
  output: shell,
  terminal: true,
});

推荐阅读