zoukankan      html  css  js  c++  java
  • node.js学习笔记5——核心模块1

    Node.js核心模块主要内容包括:(1)全局对象 (2)常用工具 (3)事件机制 (4)文件系统访问 (5)HTTP服务器与客户端

    一: 全局对象

    Node.js中的全局对象是global,所有的全局变量(除了global本身以外)都是global的属性。

    global 最根本的作用是作为全局变量的宿主。

    全局变量的条件:

    (1)在最外层定义的变量;

    (2)全局对象的属性;

    (3)隐式定义的变量(未定义直接赋值的变量(strict模式下不可以))

    在Node.js中不可能在最外层定义变量,因为所有用户代码都是属于当前模块的,而模块本身不是最外层上下文。

    一.1 process

    process是一个全局变量,即global对象的属性,它用于描述当前Node.js进程状态的对象,提供了一个与操作系统的简单接口。

    (1)process.argv是命令行参数数组,第一个元素是node,第二个元素是脚本文件名,从第三个元素开始每个元素是一个运行参数。

    (2)process.stdout 是标准输出流,console.log()向标准输出打印字符,而process.stdout.write()函数提供了更底层的接口。

    (3)process.stdin是标准输入流,初始时它是被暂停的,要想从标准输入读取数据,必须恢复流,并手动编写流的事件响应函数。

    process.stdin.resume();

    process.stdin.on('data',function(data) {

      process.stdout.write('read from console: ' + data.toString() );

    });

    (4)process.nextTick(callback)的功能是为事件循环设置一项任务,Node.js会在下次事件循环调响应时调用callback。

    注:不要使用setTimeout(fn,0)代替process.nextTick(callback),前者比后者效率要低得多。

    process的API参考: http://nodejs.org/api/process.html

    一.2 console  (所谓的各种流:跟操作系统的设置有关,有时候操作系统会把程序的错误输出和正常输出放到不同的地方,比如不同的日志文件,不同的终端设备

    console用于提供控制台标准输出,用于向标准输出流(stdout)或标准错误流(stderr)输出字符。

     (1)console.log接受若干个参数,如果只有一个参数,则输出这个参数的字符串形式;如果有多个参数,则以类似于C语言的printf()命令的格式输出。

     (2)console.error():与console.log用法一致,只是向标准错误流输出。

     (3)console.trace(): 向标准错误流输出当前的调用栈。

    二:常用工具util

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

    二.1 util.inherits

    util.inherits(constructor:构造函数, superConstructor:父级的构造函数)是一个实现对象间原型继承的函数。JavaScript的面向对象是基于原型的。

    util.inherits方法相当于原生js中的组合继承。子级只能继承父级在原型中定义的函数,构造函数中的属性都是私有的,不被继承。

    二.2 util.inspect

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

    showHidden : 可选参数,如果为true,则会输出更多隐藏信息。默认为false.

    depth : 最大递归层数,如果对象很复杂,可以指定层数以控制输出信息的多少,默认为2层,设为null,则表示不限递归层数完整遍历对象。

    color :若为true,则输出格式将会以ANSI颜色编码,通常用于在终端显示更漂亮的效果。默认为false,显示普通颜色。

    customInspect : 如果为false,则inspect(depth,opt)不会被执行,默认为true。

    注: util.inspect并不会简单地直接把对象转换为字符串,即使该对象定义了toString方法也不会调用。

  • 相关阅读:
    小程序-scroll-view用法及属性
    微信小程序--后台交互/wx.request({})方法/渲染页面方法 解析
    设计模式-观察者模式
    设计模式-简单工厂模式
    设计模式-抽象工厂模式
    设计模式-工厂方法模式
    由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射
    处理程序“svc-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
    CSS中设置height:100%无效的解决方案
    解决火狐中用JQUERY .removeAttr()无法去除元素属性的方法
  • 原文地址:https://www.cnblogs.com/shixiaomiao/p/4960508.html
Copyright © 2011-2022 走看看