node
中有一个很是强大的模块,就是用于建立网络应用的HTTP
模块。例如咱们能够建立一个服务监听某个给定的端口,这样咱们就能够为客户建立一个后端服务。就像React
或者Angular
建立的应用,或者在手机上使用的移动端应用。node
回到node
的文档中,能够找到HTTP
模块的信息,在这里能够看到不少类,好比http.Agent
、http.ClientRequest
等等。每一个类都有不少熟悉,方法和事件。 数据库
server
也是一个
EventEmitter
类,天然也是具有全部
EventEmitter
的功能。
node
的官方文档中的
HTTP
模块能够看到
http.Server
,点进去就知道这个类继承自
net.Server
类,这是另外一个定义在
net
模块中的类,点进去看文档说明知道
net.Server
是一个
EventEmitter
。这也是说在
node
中不少功能都基于
EventEmitter
回到编辑器,继续写下去。 json
server
就会发起事件。天然咱们就可使用
on
方法来处理事件,在监听以前咱们先要建立一个监听器,或者说是句柄。
connection
,能够在文档中找到,第二个是一个回调函数,或者说是真正的监听者。这个监听者是一个
socket
类的实例。在控制台运行能够看到它在监听3000端口了,须要中止监听直接
Ctrl+C
键强制退出便可。
http://localhost:3000/
server
对象能够发起不一样的事件待咱们处理。
如今咱们换一种方式,直接给CreateServer
方法一个回调函数,这个函数须要两个参数。分别是请求和响应,这样就能够直接操做真实的request
和response
对象。咱们能够检测若是请求的url
是/
,咱们就返回点东西给客户端。 后端
Hello World
。
固然咱们若是想建立一个网络应用的后端服务,须要处理不少的路由规则。咱们继续添加一个if
代码块。假设咱们想从数据库返回课程的列表,当请求路径匹配的话,就返回一个json
对象。 数组
json
数据格式的数据。
//require引入child_process,自动打开浏览器
const childProcess = require('child_process');
//监听后自动打开浏览器
childProcess.exec('start http://127.0.0.1:3000/');
复制代码
这就是一个最基本的node
建立的服务器,现实中咱们不会使用http
模块直接建立后端服务。缘由是随着项目需求愈来愈多时,所须要写的路由规则也是随着增加。一直都是在回调函数中线性的增长它们的内容,取而代之的是使用一个叫Express
的框架。它能够给应用一个清晰的结构,来处理不一样的路由请求,使用Express
来替代node
原有的HTTP
模块的功能。浏览器