node:基于事件驱动的回调
2016-05-26 19:42
309 查看
当我们使用 http.createServer 方法的时候,我们当然不只是想要一个侦听某个端口的服务器,我们还想要它在服务器收到一个HTTP请求的时候做点什么。
问题是,这是异步的:请求任何时候都可能到达,但是我们的服务器却跑在一个单进程中。
写PHP应用的时候,我们一点也不为此担心:任何时候当有请求进入的时候,网页服务器(通常是Apache)就为这一请求新建一个进程,并且开始从头到尾执行相应的PHP脚本。
那么在我们的Node.js程序中,当一个新的请求到达8888端口的时候,我们怎么控制流程呢?
嗯,这就是Node.js/JavaScript的事件驱动设计能够真正帮上忙的地方了——虽然我们还得学一些新概念才能掌握它。让我们来看看这些概念是怎么应用在我们的服务器代码里的。
我们创建了服务器,并且向创建它的方法传递了一个函数。无论何时我们的服务器收到一个请求,这个函数就会被调用。
我们不知道这件事情什么时候会发生,但是我们现在有了一个处理请求的地方:它就是我们传递过去的那个函数。至于它是被预先定义的函数还是匿名函数,就无关紧要了。
这个就是传说中的 回调 。我们给某个方法传递了一个函数,这个方法在有相应事件发生时调用这个函数来进行 回调 。
问题是,这是异步的:请求任何时候都可能到达,但是我们的服务器却跑在一个单进程中。
写PHP应用的时候,我们一点也不为此担心:任何时候当有请求进入的时候,网页服务器(通常是Apache)就为这一请求新建一个进程,并且开始从头到尾执行相应的PHP脚本。
那么在我们的Node.js程序中,当一个新的请求到达8888端口的时候,我们怎么控制流程呢?
嗯,这就是Node.js/JavaScript的事件驱动设计能够真正帮上忙的地方了——虽然我们还得学一些新概念才能掌握它。让我们来看看这些概念是怎么应用在我们的服务器代码里的。
我们创建了服务器,并且向创建它的方法传递了一个函数。无论何时我们的服务器收到一个请求,这个函数就会被调用。
我们不知道这件事情什么时候会发生,但是我们现在有了一个处理请求的地方:它就是我们传递过去的那个函数。至于它是被预先定义的函数还是匿名函数,就无关紧要了。
这个就是传说中的 回调 。我们给某个方法传递了一个函数,这个方法在有相应事件发生时调用这个函数来进行 回调 。
相关文章推荐
- Node.js的npm包管理器基础使用教程
- 24. Swap Nodes in Pairs -leetcode-java
- 【深入浅出Node.js系列八】一个基于Node.js完整的Web应用实战
- 【深入浅出Node.js系列七】Connect模块解析
- 【深入浅出Node.js系列六】Buffer那些事儿
- 【深入浅出Node.js系列五】初探Node.js的异步I/O实现
- nodejs 热更新
- 【深入浅出Node.js系列四】Node.js的事件机制
- 【深入浅出Node.js系列三】深入Node.js的模块机制
- 【深入浅出Node.js系列二】Node.js&NPM的安装与配置
- 【深入浅出Node.js系列一】什么是Node.js
- Nodejs 中常见的加密算法:MD5,RSA
- Nodejs in Visual Studio Code 14.IISNode与IIS7.x
- 19. Remove Nth Node From End of List(Linked List)
- Nodejs学习笔记(三)
- ROS的节点(NODE)
- AVA实践:面向未来的Node.js测试运行器
- node更新版本后sass无法编译解决办法
- node.js学习
- Swap Nodes in Pairs(交换链表相邻的两个结点)