1.创建web服务器的基本步骤
1.1 导入http模块
在比较新版的node中还提供了 http2.0 以及 https 的网络模块,以后可以深入学习一下
//1.导入http模块const htttp = require('http')
1.2 创建web服务器实例 http.createServer()
你可以用两种方式来创建server实例,一种是不加参数的直接创建,还有可以在创建时传入一个回调函数,这样会直接绑定request事件,而不需要第三步手动绑定了。
//2.创建web服务器实例// (1)简单创建const server = http.createServer()// (2)在创建时直接绑定 request 事件const server = http.createServer((req, res) => {res.writeHead(200, { 'Content-Type': 'application/json' });res.end(JSON.stringify({data: 'Hello World!'}));});
1.3 为服务器实例绑定 request 事件(.on方法)
// 通过调用 on 方法来为服务器实例绑定接受请求request事件,即可监听客户端发送过来的网络请求server.on('request', (req, res) => {console.log('有请求访问');})
或者也可以直接在创建服务器的时候默认绑定 request 事件,这样就不需要手动调用 on 方法:
const server = http.createServer((req, res) => {res.writeHead(200, { 'Content-Type': 'application/json' });res.end(JSON.stringify({data: 'Hello World!'}));});
1.4 启动服务器listen方法
server.listen(80, ()=>{}) //让node监听某个端口
listen方法可以传入好几种不同的参数,来简略或者详细的指定监听的主机名,端口号等,也可以传入回调函数。
如果只是需要监听本地的某个端口,只需要传入number类型的端口号即可,如果还要指定主机名,则需要使用option的方式传入更多参数。
server.listen() 方法格式
可能的语法有:
- server.listen(handle[, backlog][, callback])
- server.listen(options[, callback])
- server.listen(path[, backlog][, callback]) 用于 IPC 服务器
- [server.listen([port[, host[, backlog]]], callback]) 用于 TCP 服务器(常用)
此函数是异步的。 当服务器开始监听时,将触发 ‘listening’ 事件。 最后一个参数 callback 将被添加为 ‘listening’ 事件的监听器。
