1.
supervisor 无需重启服务器,代码改变后直接刷新
安装 cnpm install -g supervisor
使用 supervisor app.js
2.

3.
Node.js 的模块和包机制的实现参照了 CommonJS 的标准
- 什么是模块
一个Node.js 文件就是一个模块,这个文件可能是 JavaScript 代码、 JSON 或者编译过的 C/C++ 扩展
通过require 函数获取了这个模块,然后才能使用其中的对象。 - 创建模块和引用
第一种
var name;
exports.setName=function(thyName){
name=thyName;
}
exports.sayHello=function(){
console.log('hello'+name);
}
引用模块
var myMoudle=require("./moudle"); //注意./是必须的
myMoudle.setName('ben');
myMoudle.sayHello(); //helloben
第二种
function hello(){
var name;
this.setName=setName=function(thyName){
name=thyName;
}
this.sayHello=function(){
console.log('hello'+name);
}
}
module.exports=hello;
引用模块
var myMoudle=require("./moudle");
var hello =new myMoudle();
hello.setName('ben');
hello.sayHello();
- 解释
module.js 通过 exports 对象把 setName 和 sayHello 作为模块的访
问接口在 其他js 中通过 require('./module') 加载这个模块,然后就可以直接访问 module.js 中 exports 对象的成员函数了。 - 特点
单次加载
var hello1 = require('./module');
hello1.setName('BYVoid');
var hello2 = require('./module');
hello2.setName('BYVoid 2');
hello1.sayHello();
运行后发现输出结果是 Hello BYVoid 2,这是因为变量 hello1 和 hello2 指向的是同一个实例,因此 hello1.setName 的结果被 hello2.setName 覆盖,最终输出结果是由后者决定的。
moudle里面的函数自动执行,变量得向外暴露
moudle.js
var ben=10;
console.log(ben);
app.js
var Person=require("./moudle"); //10
4
node debug debug.js,将会启动调试工具

5
全局对象
process 是一个全局变量,即 global 对象的属性。它用于描述当前 Node.js 进程状态
的对象,提供了一个与操作系统的简单接口
process.nextTick(callback)
将 callback 添加到"next tick 队列"。 一旦当前事件轮询队列的任务全部完成,在next tick队列中的所有callbacks会被依次调用。


6
继承 EventEmitter
大多数时候我们不会直接使用 EventEmitter,而是在对象中继承它。包括 fs、 net、http 在内的,只要是支持事件响应的核心模块都是 EventEmitter 的子类
7MVC
模型是对象及其数据结构的实现,通常包含数据库操作。
视图表示用户界面,在网站中通常就是 HTML 的组织结构。
控制器用于处理用户请求和数据流、复杂模型,将输出传递给视图

网友评论