全局对象 global 是全局变量的宿主

全局变量
在最外层定义的
全局对象的属性
隐士定义的变量(未定义直接赋值的变量)

当定义一个全局变量时 这个变量同时也会成为全局对象的属性 反之亦然

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

process
process.argv 是命令行参数数组 第一个元素是node 第二个元素是脚本文件名称 第三个开始是每个元素的运行参数
例子
//argv.js
console.log(process.argv);
执行命令 node argv.js 1991 name=byvoid --v "Carbo Kuo"
输出
[ 'node',
'/home/byvoid/argv.js',
'1991',
'name=byvoid',
'--v',
'Carbo Kuo'
]

process.nextTick(callback) 功能:为事件循环设置一项任务 Node.js 会在 下次事件 环调 应时调用 callback?????????????????

Node.就是适合I/O密集型应用 而不是计算密集型应用 因为一个node.js进程只有一个线程 因此在任何时刻都只有一个事件在执行
如果这个事件占用大量的CPU时间 执行事件循环中的下一个事件就要等待很久 node.js的一个编程原则就是尽量缩短每一个事件的执行时间

console
console.log()
接受一个参数 直接打印字符串
两个参数时 第二个参数替换掉占位符
console.log("abc"); //"abc";
console.log("abc%cba") //"abc%cba";
console.log("abc%cba", 1991)//"abc1991cba";

console.error() 用法同上 只是向标准错误流输出
console.trace() 向标准错误流输出当前的调用栈

常用工具的util

util.inherits(constructor, superConstrutor);
是一个实现对象间原型继承的函数
只继承自原型上的函数 构造函数内部的不继承
console.log不打印原型中定义的函数

util.inspect(object, [showHidden], [depth], [colors]);
用于将任意对象转换成字符串方 通常用于调试和输出错误
至少接受一个 object参数
showHididen true 时将会输出更多隐藏信息 参数可选
depth 表示最大递归的层数 如果对象很复杂 你可以指定层数以控制输出信息的多少 不指定默认递归2层 null表示不限制次数
color true 输出格式将会以ANSI颜色编码 通常用于终端显示更漂亮的效果

其他自行百度

事件驱动evnets
events 模块只提供了一个对象 events.EventEmitter
EventEmitter的核心就是事件反射与事件监听器功能的封装

常用API
EventEmitter.on(event, listener); 为指定事件注册一个监听器 接受一个字符串event 和一个回调函数listener
EventEmitter.emit(event, [arg1], [arg2], [...])发射event事件 传递若干个可选参数到事件监听器的参数表
EventEmitter.once(event, listener); 为指定事件注册一个单次见监听器 即监听器最多只会触发一次 触发后立即解除该监听
EventEmitter.removeListener(event, listener) 移除指定事件的某个监听器 listener必须时该事件已经注册过的监听器

EventEmitter.removeAllListener([event]) 移除所有事件的所有监听器 如果指定event 则移除指定事件的所有监听器

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

文件系统fs
所有的fs模块操作都提供了同步和异步的两个版本

fs 函数定义和功能

fs.readFile(fileName, [encoding], [callback(err, data)]);
参数介绍
fileName 读取的文件名
encoding 表示文件的编码格式
callback 回调函数 用于接收文件 如果定义了encoding data为编码之后的字符串 未定义data将会以buffer形式表示二进制的数据

fs.readFileSync(fileName, [encoding]);
返回结果是一个data
如果文件未找到 将会抛错
同步需要用try{}catch(e){console.log(e)};

fs.open(path, flags, [mode], [callback](err, fd));
是POSIX open函数的封装 类似于C语言的fopen函数
参数
path文件的路径
flags可以是以下值
r 以读取模式打开文件
r+ 以读写模式打开文件
w 以写入模式打开文件 如果文件不存在则创建
w+ 以读写模式打开文件 如果文件不存在则创建
a 以追加模式打开文件 如果文件不存在则创建
a+ 以读取追加模式打开文件 如果文件不存在则创建
mode 参数用于创建人间时给文件指定权限 默认 0666
回调函数传递一个文件描述符fd 非负整数 表示操作系统内核为当前进程所维护的打开文件的记录表索引

fs.read(fd, buffer, offset, length, position, [callback(err, bytesRead, buffer)]);
是POSIXread函数的封装 相比readFile提供了更底层的接口
功能:从指定的文件描述符fd中读取数据并写入buffer指向的缓存区对象
参数介绍
offset buffer的写入偏移量
length 要从文件中读取的字节数
position 是文件读取的起始位置 值为null 则会从当前文件指针的位置读取
回调函数传递的bytesRead 和 buffer 分别表示读取的字节数 和缓存区对象

一般来说 非必要不要使用这俩种方式读取文件 因为它要求你手动管理缓存区和文件指针 尤其是不知道文件大小 很麻烦

HHTTP服务器
http.createServer(callback(req, res));
req 请求对象 res 响应对象

?????????????疑惑?????????????

1: process.nextTick(callback) 怎么就减少事件的执行时间了
2: fs.open()怎么使用

负载均衡 四部交换机 dns轮转 不能用session 只能用cookie 有的cookie不支持

最新文章

  1. Jade 模板引擎使用
  2. Mysql 学习笔记
  3. ajax请求获取的数据无法赋值给全局变量问题总结
  4. poj 2240(floyd)
  5. Apache Benchmark测试工具
  6. FastDFS配置说明
  7. read 判定用户输入的状态后运行相应的结果
  8. bzoj3743 Kamp
  9. Sublime Text 编辑器
  10. linux查看磁盘使用情况
  11. div之间有间隙以及img和div之间有间隙的原因及解决方法
  12. NPOI 辅助类
  13. POJ2352:Stars
  14. 激动啊,终于诞生了,编译了属于俺自己的 JDK
  15. 使用Windows Server 2012+ 搭建VPN 简单 高效 稳定
  16. MySQL InnoDB四个事务级别 与 脏读、不反复读、幻读
  17. 初学python之路-day12
  18. Java I/O (1) - 输入/输出流
  19. 常见的anaconda的操作
  20. 章节七、2-Linked List

热门文章

  1. javascript瀑布流
  2. python爬虫知识点三--解析豆瓣top250数据
  3. Java学习笔记13(面向对象六:super)
  4. append和extend 的区别
  5. Django-环境搭建
  6. 名片管理系统v1.1(tools)
  7. jq交叉轮播图变种【闪一下黑】
  8. Java压测之四两拨千斤
  9. 循序渐进之Spring AOP(4) - Introduction
  10. sqlserver 重置标识列