Node.js搭建一个本地Web服务器(http)

147 阅读2分钟

1.新建一个名为nodeTest.js的服务器配置文件

2.引入相应模块

const http = require('http') // 用于创建web服务器实例
const url = require('url') // 内置方法对发送请求的地址进行拆分
const qs = require('querystring') // 将接收到的字符串形式的数据转换成为相应数据类型

3.创建一个Web服务器实例

const server = http.createServer((req,res)=>{xxxxx})xxxxx中为接收请求和响应的具体代码

回调函数中的参数req代表接收的请求,res代表响应

4.具体接收请求和响应代码

(1)从接收到的请求解构出请求的地址和get请求通过url传送的数据

    // pathname是解构出请求的地址,query是接收get请求地址中附带的参数默认接收到的是字符串格式
    // http://localhost:3000/getinfo?a=1&&b=2中解构出pathname=/getinfo,query={a=1,b=2}
    const {pathname,query} = url.parse(req.url) 
    // 通过querystring将query接收到的字符串格式进行转换
    const data =qs.parse(query) // 只有get请求在url地址中传送了数据data才有数据

(2)对接收到的请求进行判断是post请求还是get请求

    // 判别接收到的请求方式
    if(req.method === 'GET'  && pathname ==='/getinfo'){
      xxxx
    }else if(req.method === 'POST' && pathname === '/postinfo'){
      xxxx
    }else{
      xxxx
    }

(3)根据不同的请求做出不同的响应操作

Get请求

        // 设置响应头
        // res.writeHead(200,{'Content-Type':'text/plain;charset=utf-8'})
        res.writeHead(200,{'Content-Type':'application/json'})
        const project ={
            name:'kjw',
            age:10
        }
        // 将project转换成JSON类型(字符串)返回
        res.end(JSON.stringify(project))

POST请求

        // 设置响应头
        res.writeHead(200,{'Content-Type':'application/json'})
        // post请求发送过来的数据是JSON类型(字符串)
        let Data =''
        // 触发data事件一段一段接收数据并拼接数据
        req.on('data',temp=>{ 
            Data+=temp
        })
        // 触发end事件说明数据全部接收完毕
        req.on('end',()=>{
            // 根据post传送的数据在这里进行相应数据库的操作或者是本地文件的获取
            // 返回JSON类型(字符串)
            res.end(Data)
        })

(4)设置本地服务器监听的端口

server.listen(3000,()=>{ console.log('server is open') })

const qs = require('querystring'):querystring模块是用于将get请求中的params转换成js对象或值

JSON.parse(JSON字符串)是将接收到的JSON字符串转换成js对象或值