正文
在node中专门提供了一个核心模块:http,http这个模块的职责就是用来帮助我们创建编写服务器的
1.加载 http 核心模块。
const http = require('http')
2.使用 http.createServer() 方法创建一个web服务器。
const server = http.createServer()
3.服务器自己要干嘛?或者说它要走什么样的一个流程?
具体操作如下:
-
提供对数据的服务。
-
发送请求。
-
接收请求。
-
处理请求。
-
给个反馈(发送响应机制)
-
注册 request 请求事件,当客户端发送请求过来,就会自动触发服务器的 request 请求事件,然后执行第二个参数(即回调处理函数) 。
//监听request请求事件,设置请求处理函数。
server.on('request', () => {
console.log('收到客户端发送过来的请求了!')
})
4.绑定(监听)端口号(端口号必须得有,默认是80端口,端口号上限是65535),启动服务器,打印日志信息。
server.listen(8081, () => {
console.log('服务器启动成功,你可以通过 http://127.0.0.1:8081/ 来进行访问')
})
5.继续完善我们的服务器,回到request事件处理函数。
request 事件处理函数,需要接收2个参数:分别是request、response。
-
request(即请求对象):请求对象可以用来获取客户端的一些请求信息,例如请求路径等。
server.on('request', (request, response) => {
console.log(`收到客户端发送过来的请求了!请求路径是${request.url}`)
})
-
response(即响应对象):响应对象可以用来给客户端发送响应信息。
response对象有一个write()方法,可以用来给客户端发送响应数据信息,write()方法可使用多次。
但是最后一定一定要使用end()方法来结束响应(告诉客户端,我话说完了,你可以把数据呈现给用户界面了),否则客户端会一直处于等待状态。
server.on('request', (request, response) => {
console.log(`收到客户端发送过来的请求了!请求路径是${request.url}`)
response.write('hello! ')
response.write('the world is beautiful')
response.end()
})
上面的write()方法输入内容,我们一般很少用,我们还有更简单的方式,可以在直接end()的同时写入内容,实现的效果是一样的。
response.end('hello! the world is beautiful')
到这一步,我们不难发现我们当前的服务器的能力非常的弱,无论我们请求的是哪个路径,都只能响应hello! the world is beautiful内容。
所以我们要做的就是,我们希望请求不同的路径的时候,响应不同的结果。