zoukankan      html  css  js  c++  java
  • Node.js笔记3


    ###Node.js核心模块

    1. 全局对象

    Node.js中能够访问到的都是global的属性

    **process它用于描述当前 Node.js 进程状态的对象,提供了一个与操作系统的简单接口。**

    * process.argv 是命令行参数数组,第一个元素是node,第二个元素是脚本文件名,从第三个元素开始每个元素是一个运行参数。
    * process.stdout 标准输出流 **console.log的定义。**
    console.log = function (d) {
    process.stdout.write(d + ' ');
    };

    通常我们使用的console.log()向标准输出打印字符,而process.stdout.write()函数提供了更底层的接口

    * process.stdin 是标准输入流,初始时它是被暂停的,要想从标准输入读取数据,你必须恢复流,并手动编写流的事件响应函数。
    * process.nextTick(callback) 异步执行callback函数 为事件循环设置一项任务,Node.js 会在下次事件循环调响应时调用callback。
    * process.chdir 改变进程的工作目录
    * process.cwd 返回当前进程的工作目录
    * process.env 返回当前linux系统的信息
    * process.exit(code=0) kill当前进程,退出本进程
    * process.getgid()、process.setgid(id) 获取和设置进程的groupid
    * process.getuid()、process.setuid(id) 获取和设置进程的userid
    * process.version、process.versions node.js的版本和node.js的版本对象
    * process.pid、process.title、process.arch、process.platform 进程id,进程名字,进程架构(如:X64),进程平台(如:linux)
    * process.memoryUsage() 进程的内存使用情况

    [processAPI](http://nodejs.org/api/process.html)

    **console用于提供控制台标准输出**

    * console.log() 可接受若干个参数 如果只有一个参数,则输出这个参数的字符串形式
    * console.error() console.log()用法相同,只是向标准错误流输出。
    * console.trace():向标准错误流输出当前的调用栈

    2. 常用工具 util

    util是一个 Node.js 核心模块,提供常用函数的集合,用于弥补核心 JavaScript 的功能过于精简的不足。

    * util.inherits(constructor, superConstructor) 用于对象间的**原型继承**(不继承方法等)

    * util.inspect(object,[showHidden],[depth],[colors]) 是一个将任意对象转换为字符串的方法,通常用于调试和错误输出。它至少接受一个参数object,即要转换的对象

    * util.isArray()、util.isRegExp()、util.isDate()、util.isError()四个类型测试工具

    * util.format()、util. debug()

    [utilAPI](http://nodejs.org/api/util.html)

    3. 事件驱动 events

    events是 Node.js 最重要的模块,events模块不仅用于用户代码与 Node.js 下层事件循环的交互,还几乎被所有的模块依赖。

    * events.EventEmitter 事件发射器 EventEmitter的核心就是事件发射与事件监听器功能的封装

    1. 需要实例化

    var event = require('events');

    var emmits = new event.EventEmitter();

    2. emitter.on('someEvent',fn) //为指定事件注册一个监听器

    3. emitter.emit('someEvent', 'hebo', 1989); //发射事件 可以传递若干参数
    4. EventEmitter.once(event, listener)为指定事件注册一个单次监听器,即监听器最多只会触发一次,触发后立刻解除该监听器
    5. EventEmitter.removeListener(event, listener)移除指定事件的某个监听器,listener必须是该事件已经注册过的监听器。
    6. EventEmitter.removeAllListeners([event])移除所有事件的所有监听器,如果指定event,则移除指定事件的所有监听器
    * error 事件

    当EventEmitter 发射error事件的时候,通常说明我们的程序有错误,如果没有监听器,则会退出程序并打印错误到console

    我们一般要为会发射error事件的对象设置监听器,避免遇到错误后整个程序崩溃

    **大多数时候我们不会直接使用EventEmitter,而是在对象中继承它。包括 fs、net、http在内的,只要是支持事件响应的核心模块都是EventEmitter的子类**
    > 为什么要这样做呢?原因有两点。首先,具有某个实体功能的对象实现事件符合语义,事件的监听和发射应该是一个对象的方法。其次 JavaScript 的对象机制是基于原型的,支持部分多重继承,继承EventEmitter不会打乱对象原有的继承关系。

    [eventsAPI](http://nodejs.org/api/events.html)

    Now or nerver .
  • 相关阅读:
    weekly review 200836: the MidAutumn Festival
    weekly review 200841: Good Weekend
    解决ListView的onitemclick事件无法响应
    Android退出程序时的"再按一次退出"实现
    Android开发之文件下载
    android ExpandableListView详解
    Android ListView及其属性
    android 图片放大的处理
    android ExpandableListView
    Toast.makeText用法
  • 原文地址:https://www.cnblogs.com/iyueyao/p/3344441.html
Copyright © 2011-2022 走看看