nodeJs入门笔记(二)
js中window通常是全局变量
global 是node.js里的全局变量 node中能访问的对象一般都是 global的 属性
global 对象属性 process 用于描述当前Node 进程状态的对象,提供了一个与操作系统的简单接口.
process.argv :命令行参数数组,第一个元素是 node,第二个元素是脚本文件名,从第三个元素开始每个元素是一个运行参数
- console.log(process.argv);
- $ node argv.js name=byvoid --v "Carbo Kuo"
- [ 'node',
- '/home/byvoid/argv.js',
- '',
- 'name=byvoid',
- '--v',
- 'Carbo Kuo' ]
process.stdout.write() 通常我们调试 是用console.log() 而它提供了更底层的接口
process.nextTick(callback) 作用给功能增加一个新的项目,node会在下次循环响应时候调用callback
我个人理解就是跟js的 回调函数一个样子 比如:
- //js的写法
- function a(b,callback){
- c(b);
- callback()
- }
- a("lee",function(){
- alert("lee是帅哥")
- });
- //用nextTick改写
- function a(b,callback){
- c(b);
- process.nextTick(callback)
- }
- a("lee",function(){
- alert("lee是帅哥")
- });
但是我相信一门语言 出现每个的方法 都有属于自己独特的魅力 更加具体的效果我也不知道怎么体现 路过的大神望解答
util 是node的核心模块。
util.inherits() 是实现对象之间的原型继承 比如说:
- var util = require("util");
- function lee(){
- this.name = "lee";
- this.time = "";
- this.leeshuo = function(){
- console.log("hello i am " +this.name)
- }
- }
- lee.prototype.aaa= "aini"
- lee.prototype.kx = function(){
- console.log("i am "+this.name);
- }
- function Hmx(){
- this.name="mx";
- }
- util.inherits(Hmx,lee);
- var lee = new lee();
- lee.leeshuo();
- lee.kx();
- console.log(lee)
- var hmx = new Hmx();
- console.log(hmx.aaa);
- hmx.kx();
看到了吧 hmx 继承了 lee的prototpye ..话说 这方法还挺好用的..
util.inspect(object,[showHidden],[depth],[colors]) 把对象转成字符串 通常用于调试和错误输出. 至少接受一个参数 object,
showHidden 是一个可选参数,如果值为 true,将会输出更多隐藏信息。
depth 表示最大递归的层数,如果对象很复杂,你可以指定层数以控制输出信息的多
少。如果不指定depth,默认会递归2层,指定为 null 表示将不限递归层数完整遍历对象。
如果color 值为 true,输出格式将会以ANSI 颜色编码,通常用于在终端显示更漂亮
的效果。
- var util = require("util");
- function lee(){
- this.name = "lee";
- this.time = "1991";
- this.leeshuo = function(){
- return this.name;
- }
- }
- var lee = new lee();
- console.log(util.inspect(lee))
- console.log(util.inspect(lee,true,2,true))
- //输出内容
- lee { name: 'lee', time: '1991', leeshuo: [Function] }
- lee {
- name: 'lee',
- time: '1991',
- leeshuo:
- { [Function]
- [length]: 0,
- [name]: '',
- [arguments]: null,
- [caller]: null,
- [prototype]: { [constructor]: [Circular] } } }
events 是Node.js 最重要的模块,没有“之一”,原因是Node.js 本身架构就是事件式的,而它提供了唯一的接口,所以堪称Node.js 事件编程的基石
events 模块只提供了一个对象: events.EventEmitter 每个事件由一个事件名和若干个参数组成,事件名是一个字符串
直接上代码
- var events = require("events");
- var emitter = new events.EventEmitter();
- emitter.on("onevent",function(a,b){
- console.log("1111 " + a +" hao "+ b);
- });
- emitter.on("onevent",function(a,b){
- console.log("2222 " + a +" hao "+ b);
- });
- //发射
- emitter.emit("onevent","lee","shuai");
node还绑定了一个特别的事件 "error" 应用的场景:
我们在遇到
异常的时候通常会发射 error 事件。当 error 被发射时,EventEmitter 规定如果没有响
应的监听器,Node.js 会把它当作异常,退出程序并打印调用栈。我们一般要为会发射 error
事件的对象设置监听器,避免遇到错误后整个程序崩溃
- emitter.emit("error")
继续成长.....
(完)
nodeJs入门笔记(二)的更多相关文章
- nodejs爬虫笔记(二)---代理设置
node爬虫代理设置 最近想爬取YouTube上面的视频信息,利用nodejs爬虫笔记(一)的方法,代码和错误如下 var request = require('request'); var chee ...
- nodejs学习笔记二——链接mongodb
a.安装mongoose库用来链接mongodb数据库 安装mongodb数据库参考mongodb安装 前言(怨言) 本来是想安装mongodb库来链接mongodb的,命令行到nodejs工程目录: ...
- nodejs学习笔记<二>简单的node服务器
在环境搭建好后,就可以开始动手架设(node驱动)一个简单的web服务器. 首先,nodejs还是用js编写.先来看一段node官网上的实例代码. var http = require('http') ...
- nodeJs入门笔记(一)
node将"HTTP服务器"这一层抽离,直接面向浏览器用户 如PHP运行之前先要配置一个功能强大而复杂的HTTP 服务器,譬如Apache.IIS 或Nginx,还需要将PHP 配 ...
- Shader 入门笔记(二) CPU和GPU之间的通信,渲染流水线
渲染流水线 1)应用阶段(CPU处理) 首先,准备好场景数据(摄像机位置,视锥体,模型和光源等) 接着,做粗粒度剔除工作. 最后,设置好每个模型的渲染状态(使用的材质,纹理,shader等) 这一阶段 ...
- nodejs学习笔记<二> 使用node创建基础服务器
创建服务器的 server.js 内容. var http = require("http"); // 引用http模块 http.createServer(function(re ...
- nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)
请求数据 前台:form.ajax.jsonp 后台:接受请求并返回响应数据 前台<= http协议 =>后台 常用的请求的方式: 1.GET 数据在url ...
- Nodejs入门(二)
Nodejs基础api 1.path path模块提供了很多实用的工具函数,用于处理文件与目录的路径,下面是它的api: normalize 方法可以输出规范格式的path字符串 join 方法用于拼 ...
- nodejs学习笔记二:解析express框架项目文件
上一章介绍了如何去创建一个express框架的工程项目,这章介绍一下express框架下的文件和用法解析,上一张我们创建的工程项目结构图如下: models是不属于原工程项目结构,为了实现数据模型后添 ...
随机推荐
- DSOframer 无法正常加载的解决方案
不了解 DSOframer 的朋友,可以先参考文章 DSOframer 的简单介绍和资源整理. 在使用 DSOframer 时,经常会碰到各种奇奇怪怪的问题,最常见的就是控件不能正常加载.大家可以按下 ...
- Sublime 学习记录(四) Alignment 插件
1) Alignment 插件的安装 打开命令面板 输入pci 回车 输入Alignment 回车安装好即可 2) Alignment 用处 用于代码对齐 3) Alignment 快捷键 默认为 ...
- 转载 hashmap java8前的原理实现
http://zhangshixi.iteye.com/blog/672697 1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允 ...
- Qt实现360安全卫士10.0界面(编译时出现的一些问题)
http://www.qtcn.org/bbs/read-htm-tid-57817.html 源码下载:https://git.oschina.net/zhjun5337/Qt360-10.0 或 ...
- 如果有需要确解MD5的,可以尝试这个网站。
http://www.hashkiller.co.uk/md5-decrypter.aspx
- 不调用库函数实现 strCpy
实现函数时,首先要弄清楚特殊情况,边界条件要搞清. char* strCpy(char* src,char* des){ //判断指针是否为空 if(NULL==src||NULL == des) r ...
- Gentoo Linux 学习笔记1
Gentoo Linux是一个基于portage进行包管理的Linux发行版,最早版本始于2002年.其官方官网为http://www.gentoo.org 目前,Gentoo Linux已 ...
- ps -aux返回超过100%
http://serverfault.com/questions/522922/cpu-more-than-100-in-ps-aux export NLS_LANG="SIMPLIFIED ...
- 解决 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 ...
- C语言的本质(6)——位运算
位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型 ...