目录

 

通过pathname判断请求地址 

用户列表增删改查接口开发

使用promise处理post请求:server.js

处理数据的文件controller/user.js

路由编写文件

 


通过pathname判断请求地址 

const http = require('http');
const routerModal = require('./router/index')


const server = http.createServer((req,res)=>{
  res.writeHead(200,{'content-type':'application/json;charset=UTF-8'})
    let resultData = routerModal(req,res);
    if(resultData){
      res.end(JSON.stringify(resultData))
    }else{
      res.writeHead(404,{'content-type':'text/html'})
      res.end('404 not found')
    }  
})

server.listen(3000,() => {
  console.log('监听3000端口')
})



router/index.js:

const url = require('url')
function handleRequest(req,res) {
  let urlObj = url.parse(req.url,true);
  console.log(urlObj)
  if(urlObj.pathname === '/api/getMsg'&&req.method === 'GET'){
    return {
      msg:'获取成功'
    }
  }
  if(urlObj.pathname === '/api/updateData'&&req.method === 'POST'){
    return {
      msg:'更新成功'
    }
  }
}

module.exports = handleRequest

结果:

http://localhost:3000/api/getMsg?name=%E9%9D%99%E9%9D%99%E4%B8%83%E5%88%86%E9%86%89&age=20
用户列表增删改查接口开发
    

使用promise处理post请求:server.js

const http = require('http');
const routerModal = require('./router/index')

const getPostData = (req) => {
  return new Promise((resolve, reject) => {
    if (req.method !== 'POST') {
      resolve({})
      return
    }
    let postData = '';
    req.on('data', chunk => {
      postData += chunk;
    })
    req.on('end', () => {
      console.log(postData)
      resolve(JSON.parse(postData))
    })
  })
}

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'content-type': 'application/json;charset=UTF-8' })
  getPostData(req).then((data) => {
    req.body = data
    let resultData = routerModal(req, res);
    if (resultData) {
      res.end(JSON.stringify(resultData))
    } else {
      res.writeHead(404, { 'content-type': 'text/html' })
      res.end('404 not found')
    }
  })

})

server.listen(3000, () => {
  console.log('监听3000端口')
})

处理数据的文件controller/user.js

module.exports = {
  getUserList(){
    return [
      {
        id:1,
        name:'jingjing',
        city:'北京'
      },
      {
        id:2,
        name:'xiaoming',
        city:'广州'
      },
      {
        id:3,
        name:'小红',
        city:'上海'
      }
    ]
  },
  addUser(userObj){
    console.log(userObj);
    return {
      code:0,
      msg:'新增成功',
      data:null
    }
  },
  delectUser(id){
    console.log(id)
    return {
      code:0,
      msg:'删除成功',
      data:null
    }
  },
  updateUser(id,userObj){
    console.log(id,userObj);
    return {
      code:0,
      msg:'更新成功',
      data:null
    }
  }
}

路由编写文件

const url = require('url')
const {getUserList,addUser,delectUser,updateUser} = require('../controller/user')
function handleRequest(req,res) {
  let urlObj = url.parse(req.url,true);
  console.log(urlObj)
  if(urlObj.pathname === '/api/getUserList'&&req.method === 'GET'){
    let resultData = getUserList()
    console.log(resultData)
    return resultData;
  }
  if(urlObj.pathname === '/api/addUser'&&req.method === 'POST'){
    let resultData = addUser(req.body);
    return resultData;
  }
  if(urlObj.pathname === '/api/delectUser'&&req.method === 'POST'){
    let resultData = delectUser(urlObj.query.id);
    return resultData;
  }
  if(urlObj.pathname === '/api/updateUser'&&req.method === 'POST'){
    let resultData = updateUser(urlObj.query.id,req.body);
    return resultData;
  }
}

module.exports = handleRequest