03简单的http服务(node.js)

一、使用node构建一个web服务器

  • 在node中专门提供了一个核心块:http
  • http这个模块的职责是就是帮你创建编写的服务器

二、步骤

  1. 加载http核心模块
  2. 使用http.createServer()方法创建一个web服务器
  3. 服务器要提供服务、发送请求、接收请求、处理请求、发送响应
  4. 绑定端口号,启动服务器
//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('服务启动成功了,可以访问了')
})

注:响应的内容只能是二进制数据或字符串。

数字、对象、数组和布尔值要进行转换。

猜你喜欢

转载自blog.csdn.net/weixin_48931875/article/details/118761530
今日推荐