学习搭建一个小网站_6_坑,看懂api文档和理解回调函数

从上一篇的官方API文档开始,

http.createServer([requestListener])
#

Returns a new instance of http.Server.

The requestListener is a function which is automatically added to the 'request' event. 

两个注意点:

  1. function: requestListener 是一个方法
  2. event:有一个叫做request的“事件”

简单介绍 事件 event:

nodejs基于google的V8引擎(很高端啊,不明觉厉的样子),先不用管高大上的原理,当前只需要知道以下东西即可:

设想一个场景来理解“事件”:

事件:有人对你打招呼“hello”

事件结果:你听到了“hello”

var events = require('events'); //nodejs 有一个叫做event的模块,引入它,就能启用"事件"了
var myEvent = new events.EventEmitter(); //event模块下有个叫做EventEmitter的类,把它new出来,或者直接背出来!

function sayHello(str)  //一个自定义方法,这里是事件的结果
{
    console.log("你听到有人对你说'" +str + "'");
}

myEvent.on("打招呼", sayHello); //定义一个事件,叫做"打招呼",并且为这个事件注册一个方法,即上面定义到sayHello方法
//myEvent.emit("打招呼", "hello");  //触发这个"打招呼"事件

保存为event.js后,可以执行  node event.js,看到控制台没有输出

然后取消最后一行行首的注释,再执行node event.js,看到控制台输出了

你听到有人对你说'hello'

也就是说,“打招呼” 这个事件被触发,并且执行了这个事件对应的方法 sayHello,并且按照这个sayHello方法的定义,传入了参数值 'hello'

注意,可以为同一个事件,注册多个方法,当事件触发时,会根据注册顺序依次执行

event简单介绍完毕

 回到官方文档:

实际上就是nodejs的http模块,有一个叫做'request'的事件,createServer的参数,[requestListener], 就是一个方法,会自动注册到'request'这个事件下,

当'request'事件触发时,会自动执行之前注册这个方法,并给这个方法传递参数

那么问题来了,学挖掘机哪家强 这个方法的参数是什么,

在API文档https://nodejs.org/api/http.html#http_event_request页面,搜索叫做request的事件,

找到event: 'request',现在知道这个[requestListener]应该怎么传入了function (request, response) { }其中requestresponse分别是什么类型也写明了

如何看懂文档的这个问题基本解决,有些其他的api也要自己挖一挖才能理解

简单介绍 回调函数callback:

javascript是个弱类型语言,并且function本身也是一个对象,这意味着,function可以作为参数,传递给另一个function

如下例子:

function a1(callback){   //方法a1接收一个叫做callback的参数
    console.log("i am function1");
    callback();  //方法a1将callback参数当作方法进行执行
}

function a2(){
    console.log("i am function2");
}

a1(a2); //方法a2作为参数传递给了方法a1

保存为callback.js,执行 node callback.js

输出如下:

i am function1
i am function2

可以看到方法a1和a2都被执行了

收工,明天继续

 

posted on 2016-02-05 23:45  HardyLin  阅读(163)  评论(0编辑  收藏  举报

导航