在 NodeJS REPL 中,如何打印到标准输出



我创建了一个简单的变量,如下所示,我想打印它。我编造了命令打印,但这当然不起作用。有没有等价物?我希望它在输出上显示输出变量,就像我在执行 x.gatesAgeOnDate() 时显示返回值一样

    var billGatesBirthday = '10-28-1955';
    print billGatesBirthday;
    exports.gatesAge = function() {
        return (new Date() - new Date(billGatesBirthday)) / 1000 / 60 / 60 / 24 / 365.25
    };
    exports.gatesAgeOnDate = function(dateOfInterest) {
        console.log('dateOfInterest');
        return (new Date(dateOfInterest) - new Date(billGatesBirthday)) / 1000 / 60 / 60 / 24 / 365.25
    };

在 REPL 中工作有点奇怪(大多数人,我建议你也这样做,制作真正的.js文件,然后使用 node realfile.js 运行它。".js"甚至是可选的),但是:您有三个选项。

首先,在 JavaScript 中执行此操作的通用方法是使用 console.log(和相关语句)。这就像它在锡上所说的那样:它会记录到控制台。

但是,您

处于 REPL 中,这意味着您评估的任何命令也将自动记录其返回值。在实际的 Node 运行(从文件)中,您只能依赖 console.log ,在 REPL 中,您也可以键入变量名称并查看返回值:

> var a = "cats":
undefined
> a
'cats'

方便。

最后,你在 Node 中,所以你可以通过 process.stdout.write 直接访问标准输出管道,这样你就可以将写入流式传输到该管道。绝对没有理由这样做,但您可以:

> var a = "lol";
undefined
> process.stdout.write(a);
loltrue

"那不仅仅是一个",不,它不是,就像上面提到的,它是你做的事情加上返回值。 console.log很好心地自动为您插入换行符,process.stdout 显然不会。所以我们看到打印a的值,没有换行符,然后是流写入尝试的返回值,这是true,因为没有出错。不要为此使用 process.stdout。

console.log(billGatesBirthday);

始终使用 console.log() 使用 JavaScript 打印任何内容。

最新更新