think.js/cnpm/作用域/回调函数/事件编程
##node环境安装 注意:不要去更改安装的路径
##什么是包? 复杂一些文档的集合
##npm 包管理器(命令行))
npm 安装 命令 npm install 给包名称 -g(全局安装) 最常用
npm init 项目的初始化
npm -v
npm adduser 添加用户信息
npm publish 发布一个包
## 模块 --> 每个文件都是一个模块
## 浏览器端模块化和 服务器端模块 区别:
1 浏览器端没有自带模块化的功能 如果要把浏览器端代码写成模块化 首先引入requiejs 框架 还要去按照requiejs的
规则来写 a define()定义模块 b requiejs 使用模块
2 node里面的模块 自带模块功能 任何一个文件都是一个模块 所以不用去define
注意:node_modules 默认放node的包 在项目中如果没有 通过npm安装包的时候 自动创建这个文件夹
## 控制台输出
- NodeJS控制台
console对象代表控制台与Chrome中的控制台一样,不过Node中的控制台输出至CMD窗口。Node.js中,可以通过console对象的各种方法向控制台中输出内容。
//普通输出
console.log("hello yaoxin");
//错误输出
console.error("错误消息");
//time(flag) 与 timeEnd(flag) 统计一段代码的执行时间,注意time、timeEnd的flag需一致
console.time("t1");
for(var i=0;i<1000;i++){
console.log("hehe");
}
console.timeEnd("t1");
## node 作用域 每一个文件就是一个模块 每个模块都是一个独立的
注意:全局作用域 global 不要用 (因为模块化就是为了不互相影响) 在模块内部 作用域链 函数内部要一层一层的由内往外找变量
;(function($){})(jQuery)
## 回调函数 可以作为参数传递
1 是一个最普通的函数
2 可以作为参数传递 *****
3 等到某人某件事干完了 再来调用 绑定事件
## 事件编程
一个高性能的服务器应该有两个特点: 1 事件驱动 2 非阻塞I/O(异步)
事件:发生某件事 911事件 918事件
事件绑定: 当某件事情发生 对应采取的措施
node 模块化
## 事件模块上的一些方法
1 on addListener 绑定事件
2 emit 触发事件
3 once 用once绑定的事件只能触发一次
4 removeAllListeners 移出所有的事件
5 removeListener 移除某个事件
6 setMaxListeners(n)
7 listeners 打印监听的函数数组
- CNPM
在我们中国,要下载 npm 包非常慢,如果使用 cnpm 下载包就非常快了。
CNPM是taobao提供的一个完整 npmjs.org 镜像,cnpm与npm的内容每10分钟会同步一次。
安装cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
使用cnpm:
cnpm install <模块名>