一、使用node构建一个web服务器
- 在node中专门提供了一个核心块:http
- http这个模块的职责是就是帮你创建编写的服务器
二、步骤
- 加载http核心模块
- 使用http.createServer()方法创建一个web服务器
- 服务器要提供服务、发送请求、接收请求、处理请求、发送响应
- 绑定端口号,启动服务器
//1、加载http核心模块
var http = require('http')
//2、使用http.createServer()方法创建一个web服务器
var server = http.createServer()
//3、服务器提供的服务
server.on('request',function(request,response){
console.log('收到客户端的请求了,请求路径是:' + request.url)
//response
response.write('今年过节不收礼,收礼只收node.js')
response.write('hhhhhhhh')
response.end()
//也可以直接end的同时发送响应数据
//response.end('hello nodejs')
})
//4、绑定端口号,启动服务器
server.listen(3000,function(){
console.log('服务器启动成功了,可以通过http://127.0.0.1:3000/ 来进行访问')
})
获取请求路径:request.url
三、关于request和response
(1)注册request请求事件
- 当客户端请求过来,就会自动触发服务器的request请求事件,然后执行第二个参数:回调处理函数
(2)request 请求事件处理函数,需要接收两个参数:
request请求对象
- 请求对象可以用来获取客户端的一些请求信息,例如请求路径
response 响应对象
- 响应对象可以用来给客户端发送响应消息
- write 可以使用多次,但是最后一定要使用end来结束响应,否则客户端会一直等待
cmd窗口打开后服务就已经打开了,cmd窗口不能关,一关就会关闭服务
四、根据不同路径发送不同的响应结果
var http = require('http')
var server = http.createServer()
server.on('request',function(request,response){
//根据不同的请求路径发送不同的响应结果
//1、获取请求路径
// request.url获取到的是端口号之后的那一部分路径
// 也就是说所有的url都是以/开头的
//2、判断路径处理响应
var url = request.url
if(url === '/'){
response.end('index page')
}else if(url === '/login'){
response.end('login page')
}else{
response.end('404 not found')
}
//根据路径返回json对象
if(url === '/fruit'){
//响应的内容只能是二进制数据或者字符串。数字、对象、数组、布尔值都不行
var fruits = [
{
name:'苹果',
color:'red'
},
{
name:'西瓜',
color:'green'
},
{
name:'香蕉',
color:'yellow'
}
]
//把上面的数组转换成字符串
response.end(JSON.stringify(fruits))
}
})
//3、绑定端口号,启动服务
server.listen(3000,function(){
console.log('服务启动成功了,可以访问了')
})
注:响应的内容只能是二进制数据或字符串。
数字、对象、数组和布尔值要进行转换。