node.js--(2)

事件驱动编程是处理不可预测性的极佳方式。

I/O模型:无需担心互锁和并发,多线程 异步I/O;

    回调(Callback)

熟悉jQuery的经常用;回调是指:将一个函数作为参数传递给另一个函数,通常在第一个函数完成后被调用。

js函数是第一类对象(first-class); 

    事件监听

events 模块只提供了一个对象: events.EventEmitter。EventEmitter 的核心就是事件触发与事件监听器功能的封装。你可以通过require("events");来访问该模块。

// 引入 events 模块var events=require('events');

// 创建 eventEmitter 对象var eventEmitter=newevents.EventEmitter();

EventEmitter 提供了多个属性,如onemiton函数用于绑定事件函数,emit属性用于触发一个事件。

一个事件可以有多个监听器;

// 绑定 connection 事件,处理函数为listener1 

eventEmitter.addListener('connection',listener1);

// 绑定 connection 事件,处理函数为 listener2 eventEmitter.on('connection',listener2);

 var eventListeners=require('events').EventEmitter.listenerCount(eventEmitter,'connection');

console.log(eventListeners+" 个监听器监听连接事件。");

    模块系统

写好js文件;用require()导入;

function Hello() { };

module.exports = Hello;

    出现的规范:commanjs;CommonJS定义的模块分为:{模块引用(require)} {模块定义(exports)} {模块标识(module)}

require()用来引入外部模块;exports对象用于导出当前模块的方法或变量,唯一的导出口;module对象就代表模块本身。

require了这个模块之后,所有呗exports的函数都可以调用;

    事件机制的实现

大部分模块,都继承Event模块(events.EventEmitter) ; 是一个简单的事件监听器模式的实现;

addListener/on , once , removeListener , emit , 

    nodejs客户端

爬取不能通过API获取的web内容;

需要指定页面信息的一个options对象;

    Express

web框架;  Python里面:Django;

能做的事情:① 基于Json的API②单页面Web应用程序③实时Web应用程序

    Jade

模板引擎; 基于缩进,文档结构; 动态输出数据到HTMl;

# .  用来表示id和class   | 组织大的文本;

操纵数据 并输出数据到Html;

(-)随后的代码应当被执行;(=) 对代码进行演算,转义            #{ } 变量

Express 例子:

1. express example

2. cd example && npm install

routes:定义了应用程序应该响应的页面;views:布局layout

你可能感兴趣的:(node.js--(2))