>웹 프론트엔드 >JS 튜토리얼 >Node.js의 전역 개체에 대한 자세한 소개

Node.js의 전역 개체에 대한 자세한 소개

不言
不言원래의
2018-08-23 17:16:252218검색

이 글은 Node.js의 전역 객체에 대한 자세한 소개를 담고 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

One: 노드 전역 개체의 경로

1.Path

_filename ---현재 파일 경로

_dirname ----현재 파일이 위치한 디렉터리

예:

console.log(__filename);
console.log(__dirname);
输出结果:
/Users/macshiguang/node/npm2/index.js
/Users/macshiguang/node/npm2

두 번째: 노드 전역 개체 console

2.console (콘솔)

(1) 자리 표시자

%s ---- 문자열

console.log("hello %sworld ","world"); //출력: hello world world

%d ---값(정수 또는 부동 소수점 수)

console.log("Price: %d","88 ") ; //출력: 가격: 88

%i ----정수, 정수

console.log("%i",300.8) //출력 300

%f - ---부동 소수점 값, 부동 소수점 유형

console.log("%f",200.3) //출력 200.3

%j ----JSON, 매개변수에 순환 참조가 포함된 경우, 그런 다음

console.log('json:%j',{name:'zhang'}); //json:{"name":"zhang"}

console.log({name:'zhang'} ); //출력 객체: { 이름: 'zhang' }

(2) 콘솔 객체 속성

log() ---Log

count( ) ---Count

 console.count();
console.count('tag'); // default: 1   tag: 1

console.count();
console.count('tag'); // default: 2   tag: 2

console.count();
console.count('tag');// default: 3   tag: 3

countReset() ---카운트 재설정

console.countReset('tag');

console.count('tag') //위 카운트 연결, 태그: 1

dir() ---속성과 메소드 출력

// 특정 매개변수 출력

console.dir(global);

// 매개변수 출력 특정 속성

console.log(global ,{colors:true})

//깊이 속성의 첫 번째 수준을 출력합니다. 객체 서식을 지정할 때 반복할 횟수

console.dir(global,{colors:true} ,length:1});

time() --- 프로그램의 실행 시간 계산

timeEnd() --- 프로그램의 실행 시간 계산

// 时间
console.time();
for (let i = 0;i<1000;i++){
     i * 15 +120 /34;
}
console.timeEnd();//undefined: 0.054ms

group( )​- --다음 줄 들여쓰기를 두 칸씩 늘립니다

groupEnd()​---다음 줄의 들여쓰기를 두 칸씩 삭제

console.log("团");
console.group();
console.log("一营");
console.group();
console.log("一连");
console.log("二连");
console.groupEnd();
console.log("二营");
console.group();
console.log("一连");
console.log("二连");
console.groupEnd();
console.groupEnd();
console.log("炮兵团");

//输出
团
    一营
        一连
        二连
    二营
        一连
        二连
炮兵团

error()​-- -Error

console.error("오류");

warn() ---경고

console.warn("경고");

trace ---디버그 정보

console.trace ("trace");

(3) 캐릭터 페인팅

figlet 패키지

설치: npm install figlet

소개:

figlet("hello world !",function (err,data) {
    console.log(data);
})

3. de 글로벌 객체 타이머

3、定时器

(1)设置定时

        setTimeout(callback , delay[ , args......])

       setInterval(callback, delay[ , args......])

      setImmediate(callback, [ , args......])  ---异步执行

例子:

// 定时器,异步执行(先同步后异步)
let myImmediate = setImmediate(function () {
    console.log("setImmediate立即执行");
})

//同步执行
setTimeout(function (name) {
    console.log("setTimeout");
})

//输出结果
setTimeout
setImmediate立即执行

(2)取消定时

        clearTimeout(timeout)

        clearInterval(timeout)

         clerImmediate(Immediate)

例子:

let myImmediate = setImmediate(function () {
    console.log("setImmediate立即执行");
})
clearImmediate(myImmediate);

四:Node全局对象之Module

4、Module(模块)

      属性:

      exports   ---模块中导入的方法,属性,类, module.exports===exports,改变属性值用:module.exports

      require()    ---引入模块module.require() ===require()

      require.main  ---得到直接使用node运行的模块,require.main === module

      parent   ---父模块

      children  ---子模块

      filename  ---当前模块的路径,等同于__filename

      id  ---

      loaded  ---

      paths  ---

五. Node全局对象之process

5. Process(进程)

(1)对象属性

        pid  ---进程号

        title  ---进程名

        argv  ---命令行选项组成的数组

        argv0  ---命令行选项的第一个

        env  ---环境信息

        execPath ---node.exe的路径

        arch ---CPU架构

        versions ---版本号信息

         platform ---平台信息/操作系统信息

         cwd()  --返回进程工作目录(当前运行文件的目录)

         memoryUsage()  --返回内存使用情况,单位byte

        exit() ---结束进程

例子:www/test-01.js

console.log(process.pid);//13196
console.log(process.title);//D:\WebStorm\WebStorm 2017.2\bin\runnerw.exe
console.log(process.argv);//[ &#39;D:\\nodejs\\node.exe&#39;, &#39;D:\\nodejs\\www\\test\\test-01.js&#39; ]
console.log(process.argv0);//D:\nodejs\node.exe
console.log(process.cwd());//D:\nodejs\www\test
//开启异步操作
setTimeout(function () {
},100000);

(2)输入输出流(I/O)

         process.stdin ---输入

         process.stdout ---输出

例子一:

// 输出流
process.stdout.write("hello");
process.stdout.write(",world");

// 输入流
process.stdin.on(&#39;data&#39;,function (name) {
    console.log(&#39;请输入用户名:&#39;+name);
})

//输出:
hello,world
请输入用户名:
zhang
请输入用户名:zhang

例子二:

输入任意两个数,自动计算其和

let a;
let b;
process.stdout.write("请输入a的值:");
process.stdin.on(&#39;data&#39;,function (chunk) {
    if(!a){
        a=Number(chunk);
        process.stdout.write("请输入b的值:");
    }else {
        b=Number(chunk);
        process.stdout.write("a+b的和为:"+(a + b));
    }
})

(3)Exit Codes

  1. 正常情况下,无异步操作正在等待,node.js以状态码0退出


  2. 未捕捉异常......

     详情:http://nodejs.cn/api/process.html#process_exit_codes

六. Node全局对象之Buffer

6. Buffer

(1) 什么是Buffer

读取或者操作二进制数据流

Buffer类的实例类似整数数组,但Buffer的大小是固定的且在V8堆外分配物理内存。

使用Buffer来存储需要占用大量内存的数据

(2)Buffer的应用

读取文件内容时,返回是buffer

使用net或者http模块来接受网络数据时,data事件的参数也是一个buffer

使用node.js编写一些底层功能时,比如:网络通信模块,某个数据库的客户端模块,或需从文 件中操作大量结构化数据时

(3)类方法

Buffer.alloc() ---分配长度,每个元素自动填充0,每个元素都是一个字节byte(8bit)

通过在http://tool.oschina.net/hexconvert中查看进制转换

例子:

// 创建buffer
// 为Buffer对象分配10个长度,每个元素自动填充0
//buffer的每个元素都是一个字节byte(8bit)
const buf = Buffer.alloc(10);
buf[0] =10;
buf[1] =250;//转为10进制为fa
buf[2] =300;//转为10进制为2c
console.log(buf);//<Buffer 0a fa 2c 00 00 00 00 00 00 00>
console.log(buf.length);//10

Buffer.from() ---快速创建Buffer

例子:

// 快速创建
// 数组
const buf2 = Buffer.from([1,2,260,4]);
console.log(buf2);//<Buffer 01 02 04 04>
console.log(buf2.length);//4
// 字符串,需utf-8编码
const buf3  =Buffer.from(&#39;你好&#39;,&#39;utf8&#39;);
console.log(buf3);//<Buffer e4 bd a0 e5 a5 bd>
console.log(buf3.length);//6

Buffer.allocUnSafe() ---创建Buffer

例子:

// 直接从内存开辟空间,10个字节,没有初始化
const buf4 = Buffer.allocUnsafe(10);
console.log(buf4);//输出有内容,<Buffer 98 21 49 7e bf 02 00 00 08 22>,
// 直接从内存开辟空间,10个字节,没有初始化(可能回保存好旧的数据)速度比较快
buf4.fill(&#39;a&#39;);//每一个填充a
console.log(buf4.length);//4

Buffer.allocUnSafeSlow() --

Buffer.byteLength() ---

Buffer.compare()  ---

Buffer.concat()  ---拼接buffer

例子:综和上面创建的buffer:

//拼接buffer
const buf5 = Buffer.concat([buf,buf2]);
console.log(buf5);//<Buffer 0a fa 2c 00 00 00 00 00 00 00 01 02 04 04>
console.log(buf5.length);//14

isBuffer()  ---

isEncoding() ---

PoolSize属性

ToString() ---buffer输出

例子:综合以上例子

// buffer 输出字符串
console.log(buf.toString(&#39;hex&#39;));//
console.log(buf3.toString(&#39;utf8&#39;));//你好

(4) Buffer对象方法

      Buf[index]

      Buf.buffer

      Buf.compare()

      Buf.copy()......

      详情见:http://nodejs.cn/api/buffer.html

相关推荐:


위 내용은 Node.js의 전역 개체에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.