node.js stdout clearline()和cursorTo()函数

从node.js教程中,我看到了这两个process.stdout函数:

process.stdout.clearLine(); process.stdout.cursorTo(0); 

但是我使用了更新的node.js版本(4.2.4),并且这些函数不存在。 我得到process.stdout.clearLine is not a functionprocess.stdout.cursorTo is not a function

node.js版本4.2.4上clearLine和cursorTo的等价物是什么?

编辑:

那些也不工作:

 process.readline.clearLine(); process.readline.cursorTo(0); function writeWaitingPercent(p) { process.readline.clearLine(); process.readline.cursorTo(0); process.stdout.write(`waiting ... ${p}%`); } 

我得到Cannot read property 'clearLine' of undefined

这是解决scheme:

一,要求readline:

 var readline = require('readline'); 

然后,使用cursorTo像这样:

 function writeWaitingPercent(p) { //readline.clearLine(process.stdout); readline.cursorTo(process.stdout, 0); process.stdout.write(`waiting ... ${p}%`); } 

我已经评论clearLine,因为在我的情况下是无用的(cursorTo将光标移回到开始处)

作为Node.js一部分的Readline模块现在提供了readline.cursorTo(stream, x, y)readline.moveCursor(stream, dx, dy)readline.clearLine(stream, dir)方法。


使用TypeScript,您的代码应如下所示:

 import * as readline from 'readline' // import readline = require('readline') also works /* ... */ function writeWaitingPercent(p: number) { readline.clearLine(process.stdout, 0) readline.cursorTo(process.stdout, 0, null) let text = `waiting ... ${p}%` process.stdout.write(text) } 

以前的代码将会转化为以下Javascript(ES6)代码:

 const readline = require('readline'); /* ... */ function writeWaitingPercent(p) { readline.clearLine(process.stdout, 0); readline.cursorTo(process.stdout, 0, null); let text = `waiting ... ${p}%`; process.stdout.write(text); } 

作为一种替代方法,您可以使用下面的JavaScript代码(ES6):

 const readline = require('readline'); /* ... */ function waitingPercent(p) { readline.clearLine(process.stdout, 0) readline.cursorTo(process.stdout, 0) let text = `waiting ... ${p}%` process.stdout.write(text) } 

process.readline.cursorTo和process.readline.clearLine

节点v4.2.4文档