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

时间:2016-01-23 18:12:56

标签: node.js

我创建了一个简单的变量,如下所示,我想打印它。我编写了命令打印,但这当然不起作用。有相同的吗?我希望它在输出上显示输出变量,就像我在执行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
    };

2 个答案:

答案 0 :(得分:4)

在REPL中工作有点奇怪(大多数人,我建议你也这样做,制作真正的.js文件,然后使用(t, [ x,y,vx,vy]) = (6.2831853071794184, [ 1.00000000e+00, -6.76088739e-15, 4.23436503e-12, -1.00000000e+00]) 来运行。" .js& #34;甚至是可选的)但是:你有三个选择。

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

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

console.log

便利。

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

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

"那不仅仅是",不是没有,就像上面提到的那样,你做了加上的回报值。 > var a = "lol"; undefined > process.stdout.write(a); loltrue 非常友好地为您自动插入换行符,process.stdout显然不会。所以我们看到console.log打印的值,没有换行符,然后是流写入尝试的返回值,即a,因为没有出错。不要使用process.stdout。

答案 1 :(得分:1)

console.log(billGatesBirthday);

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