js中window通常是全局变量

global 是node.js里的全局变量 node中能访问的对象一般都是 global的 属性

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

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

  1. console.log(process.argv);
  2.  
  3. $ node argv.js name=byvoid --v "Carbo Kuo"
  4. [ 'node',
  5. '/home/byvoid/argv.js',
  6. '',
  7. 'name=byvoid',
  8. '--v',
  9. 'Carbo Kuo' ]

process.stdout.write() 通常我们调试 是用console.log() 而它提供了更底层的接口

process.nextTick(callback) 作用给功能增加一个新的项目,node会在下次循环响应时候调用callback

我个人理解就是跟js的 回调函数一个样子 比如:

  1. //js的写法
  2. function a(b,callback){
  3. c(b);
  4. callback()
  5. }
  6.  
  7. a("lee",function(){
  8.  
  9. alert("lee是帅哥")
  10. });
  11.  
  12. //用nextTick改写
  13. function a(b,callback){
  14. c(b);
  15. process.nextTick(callback)
  16. }
  17.  
  18. a("lee",function(){
  19.  
  20. alert("lee是帅哥")
  21. });

但是我相信一门语言 出现每个的方法 都有属于自己独特的魅力 更加具体的效果我也不知道怎么体现 路过的大神望解答

util 是node的核心模块。

util.inherits() 是实现对象之间的原型继承 比如说:

  1. var util = require("util");
  2.  
  3. function lee(){
  4. this.name = "lee";
  5. this.time = "";
  6. this.leeshuo = function(){
  7. console.log("hello i am " +this.name)
  8. }
  9.  
  10. }
  11. lee.prototype.aaa= "aini"
  12. lee.prototype.kx = function(){
  13. console.log("i am "+this.name);
  14. }
  15.  
  16. function Hmx(){
  17. this.name="mx";
  18. }
  19.  
  20. util.inherits(Hmx,lee);
  21.  
  22. var lee = new lee();
  23.  
  24. lee.leeshuo();
  25. lee.kx();
  26. console.log(lee)
  27. var hmx = new Hmx();
  28.  
  29. console.log(hmx.aaa);
  30. hmx.kx();

看到了吧 hmx 继承了 lee的prototpye ..话说 这方法还挺好用的..

util.inspect(object,[showHidden],[depth],[colors]) 把对象转成字符串 通常用于调试和错误输出. 至少接受一个参数 object,

showHidden 是一个可选参数,如果值为 true,将会输出更多隐藏信息。
depth 表示最大递归的层数,如果对象很复杂,你可以指定层数以控制输出信息的多
少。如果不指定depth,默认会递归2层,指定为 null 表示将不限递归层数完整遍历对象。
如果color 值为 true,输出格式将会以ANSI 颜色编码,通常用于在终端显示更漂亮
的效果。

  1. var util = require("util");
  2.  
  3. function lee(){
  4. this.name = "lee";
  5. this.time = "1991";
  6. this.leeshuo = function(){
  7. return this.name;
  8. }
  9.  
  10. }
  11.  
  12. var lee = new lee();
  13. console.log(util.inspect(lee))
  14. console.log(util.inspect(lee,true,2,true))
  15.  
  16. //输出内容
  17. lee { name: 'lee', time: '1991', leeshuo: [Function] }
  18. lee {
  19. name: 'lee',
  20. time: '1991',
  21. leeshuo:
  22. { [Function]
  23. [length]: 0,
  24. [name]: '',
  25. [arguments]: null,
  26. [caller]: null,
  27. [prototype]: { [constructor]: [Circular] } } }

events 是Node.js 最重要的模块,没有“之一”,原因是Node.js 本身架构就是事件式的,而它提供了唯一的接口,所以堪称Node.js 事件编程的基石

events 模块只提供了一个对象: events.EventEmitter    每个事件由一个事件名和若干个参数组成,事件名是一个字符串

直接上代码

  1. var events = require("events");
  2. var emitter = new events.EventEmitter();
  3.  
  4. emitter.on("onevent",function(a,b){
  5. console.log("1111 " + a +" hao "+ b);
  6. });
  7. emitter.on("onevent",function(a,b){
  8. console.log("2222 " + a +" hao "+ b);
  9. });
  10. //发射
  11. emitter.emit("onevent","lee","shuai");

node还绑定了一个特别的事件 "error"  应用的场景:

我们在遇到
异常的时候通常会发射 error 事件。当 error 被发射时,EventEmitter 规定如果没有响
应的监听器,Node.js 会把它当作异常,退出程序并打印调用栈。我们一般要为会发射 error
事件的对象设置监听器,避免遇到错误后整个程序崩溃

  1. emitter.emit("error")

继续成长.....

(完)

nodeJs入门笔记(二)的更多相关文章

  1. nodejs爬虫笔记(二)---代理设置

    node爬虫代理设置 最近想爬取YouTube上面的视频信息,利用nodejs爬虫笔记(一)的方法,代码和错误如下 var request = require('request'); var chee ...

  2. nodejs学习笔记二——链接mongodb

    a.安装mongoose库用来链接mongodb数据库 安装mongodb数据库参考mongodb安装 前言(怨言) 本来是想安装mongodb库来链接mongodb的,命令行到nodejs工程目录: ...

  3. nodejs学习笔记<二>简单的node服务器

    在环境搭建好后,就可以开始动手架设(node驱动)一个简单的web服务器. 首先,nodejs还是用js编写.先来看一段node官网上的实例代码. var http = require('http') ...

  4. nodeJs入门笔记(一)

    node将"HTTP服务器"这一层抽离,直接面向浏览器用户 如PHP运行之前先要配置一个功能强大而复杂的HTTP 服务器,譬如Apache.IIS 或Nginx,还需要将PHP 配 ...

  5. Shader 入门笔记(二) CPU和GPU之间的通信,渲染流水线

    渲染流水线 1)应用阶段(CPU处理) 首先,准备好场景数据(摄像机位置,视锥体,模型和光源等) 接着,做粗粒度剔除工作. 最后,设置好每个模型的渲染状态(使用的材质,纹理,shader等) 这一阶段 ...

  6. nodejs学习笔记<二> 使用node创建基础服务器

    创建服务器的 server.js 内容. var http = require("http"); // 引用http模块 http.createServer(function(re ...

  7. nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)

    请求数据 前台:form.ajax.jsonp 后台:接受请求并返回响应数据     前台<= http协议 =>后台   常用的请求的方式: 1.GET           数据在url ...

  8. Nodejs入门(二)

    Nodejs基础api 1.path path模块提供了很多实用的工具函数,用于处理文件与目录的路径,下面是它的api: normalize 方法可以输出规范格式的path字符串 join 方法用于拼 ...

  9. nodejs学习笔记二:解析express框架项目文件

    上一章介绍了如何去创建一个express框架的工程项目,这章介绍一下express框架下的文件和用法解析,上一张我们创建的工程项目结构图如下: models是不属于原工程项目结构,为了实现数据模型后添 ...

随机推荐

  1. DSOframer 无法正常加载的解决方案

    不了解 DSOframer 的朋友,可以先参考文章 DSOframer 的简单介绍和资源整理. 在使用 DSOframer 时,经常会碰到各种奇奇怪怪的问题,最常见的就是控件不能正常加载.大家可以按下 ...

  2. Sublime 学习记录(四) Alignment 插件

    1)  Alignment 插件的安装 打开命令面板 输入pci 回车 输入Alignment 回车安装好即可 2)  Alignment 用处 用于代码对齐 3) Alignment 快捷键 默认为 ...

  3. 转载 hashmap java8前的原理实现

    http://zhangshixi.iteye.com/blog/672697 1.    HashMap概述: HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允 ...

  4. Qt实现360安全卫士10.0界面(编译时出现的一些问题)

    http://www.qtcn.org/bbs/read-htm-tid-57817.html 源码下载:https://git.oschina.net/zhjun5337/Qt360-10.0  或 ...

  5. 如果有需要确解MD5的,可以尝试这个网站。

    http://www.hashkiller.co.uk/md5-decrypter.aspx

  6. 不调用库函数实现 strCpy

    实现函数时,首先要弄清楚特殊情况,边界条件要搞清. char* strCpy(char* src,char* des){ //判断指针是否为空 if(NULL==src||NULL == des) r ...

  7. Gentoo Linux 学习笔记1

         Gentoo Linux是一个基于portage进行包管理的Linux发行版,最早版本始于2002年.其官方官网为http://www.gentoo.org 目前,Gentoo Linux已 ...

  8. ps -aux返回超过100%

    http://serverfault.com/questions/522922/cpu-more-than-100-in-ps-aux export NLS_LANG="SIMPLIFIED ...

  9. 解决 MySQL manager or server PID file could not be found! 的方法

    [root@centos var]# service mysqld stop MySQL manager or server PID file could not be found!       [F ...

  10. C语言的本质(6)——位运算

    位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型 ...