Node.js入门笔记(2):全局对象(1)

以下将以API文档为基础进行分析学习

global对象

这些对象在所有模块里都可用。有些对象不是在全局作用域而是在模块作用域里,这些情况下面文档都会标注出来。

__filename——返回当前模块文件解析后的绝对路径,该属性不是全局的,而是模块作用域下的。

因此,直接console.log(_filename);不要加global.

__dirname——返回当前模块文件所在目录解析后的绝对路径,也不是全局的。

比如,通过定时器打印出每秒的时刻。

setInterval(function () {
    var d=new Date();
  console.log('现在是:'+d.getFullYear()+'年'+(d.getMonth()+1)+'月'+d.getDay()+'日'+d.getHours()+'时'+d.getMinutes()+'分'+d.getSeconds()+'秒');
},1000);

process对象

process 对象是一个全局对象,可以在任何地方访问到它。 它是EventEmitter的一个实例。通过这个对象提供的属性和方法,可以允许我们对当前程序的进程进行访问和控制。

console.log(process)

发现弹出了很多方法和属性

argv

通过console.log(process)可以发现,返回的是一个数组。第一个数组元素是运行的程序(node.exe),第二个是运行的js文件。第三个是参数

execPath

开启当前进程的绝对路径

env

返回用户的环境信息——一般是操作系统数据之类。

version/versions

返回版本

pid

当前进程的pid,你可以在window进程中看到

title

进程的显示名称。(getter/setter)

arch

返回CPU的处理器架构

platform

操作平台

cwc()

当前进程的工作目录

chdir(directory)

改变进程的工作目录

memoryUsage()

返回内存使用情况

exit

退出
比如5秒之后退出程序

setTimout(function(){
  process.exit();
},5000);

kill(pid)

向进程发送信息

stdin/stdout标准输入输出流(I/O)——重要概念

标准输入/出设备:比方说键盘/显示器就是I/O设备
提供操作输入数据和输出数据的方法,亦称为“IO方法”。
console.log()就是标准输出对象实现的。
process.stdout.write('hello!');的结果跟console.log('hello!')是一样的。console.log的实现是是:

console.log = function(d) {
   process.stdout.write(d + '
');
};

同理输入是:

//用于监听用户输入的数据
//默认情况下输入流是关闭的。要监听处理输入流数据,首先要开启输入流
process.stdin.resume();
process.stdin.on('data',function (chunk) {
    console.log('用户输入了:'+chunk)
});

用户可以在控制台输入内容

现在还不够完善

process.stdin.resume();
var a,b;
process.stdout.write('请输入a的值:');
process.stdin.on('data',function (chunk) {
    if(!a){
        a=Number(chunk);
        process.stdout.write('请输入b的值:');//输入之后提示输入b
    }else{
        b=Number(chunk);
  process.stdout.write('结果是:'+(a+b));
  }
});

原文地址:https://www.cnblogs.com/djtao/p/6127584.html