node 处理 http

时光总嘲笑我的痴心妄想 提交于 2020-02-02 03:23:05

node 处理http

  1. 安装nodemon
    它是个自动重启工具,当项目内的文件发生变化的时候它回自动重启服务,而不再需要我们再去手动启动服务。
npm install nodemon --save-dev

使用:
使用 nodemon app.js 代替 node app.js 其中app.js 就是项目的入口文件
在这里插入图片描述
2. 使用node 处理 http (GET、POST)

const http = require('http')
const querystring = require('querystring')

const server = http.createServer((req,res) => {
  const method = req.method
  const url = req.url 
  const path = url.split('?')[0]
  const query = querystring.parse(url.split('?')[1])
  // 设置返回的格式
  res.setHeader('Content-Type', 'application/json')

  // 返回的数据
  const resData = {
    method,
    url,
    path,
    query
  }

  // 返回
  if(method === 'GET') {
    res.end(JSON.stringify(resData))
    return
  }
  if(method === 'POST') {
    // 定义post 方法接受到的数据
    let postData = ''
    req.on('data', chunk => {
      postData += chunk.toString()
    })
    req.on('end', () => {
      resData.postData = postData
      // 返回
      res.end(JSON.stringify(resData))
    })
  }
})

server.listen(8000)
console.log('port: 8000')

关于 req.on
当接受到了一个 POST 或者 PUT 请求时,请求体对于你的应用程序非常重要。相对于访问请求 头而言,获取请求体有些麻烦。传入请求对象的 request 其实实现了 ReadableStream 接口, 这个信息流可以被监听,或者与其它流进行对接。我们可以通过监听 ‘data’ 和 ‘end’ 事件从而把 数据给取出来。

每次在 ‘data’ 事件中触发抓获的数据块是一个 Buffer。如果你已知是一个字符串对象,那么 最好的方案就是把这些数据收集到一个数组中,然后在 ‘end’ 事件中拼接并且把它转化为字符串。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!