从0学习nodejs

82 阅读1分钟

- server开发和前端开发的区别

  1. 服务稳定性
  2. 考虑内存和cpu(优化,扩展)
  3. 日志记录
  4. 安全
  5. 集群和服务拆分

http请求概述

  1. DNS解析,建立TCP连接,发送http请求
  2. server接收到http请求,处理,并返回
  3. 客户端接收到返回数据,处理数据(如渲染页面,执行js)

node.js处理http请求

  1. get请求和querystring
  2. post请求和postdata
  3. 路由
const http = require('http');
const server = http.createServer((req,res)=>{
  //req (Request简写) ***向服务器发送什么
  //res (Response简写)  ***服务器返回什么
  res.writeHead(200,{'content-type': 'text/html'})
  res.end('<div>123456</div>')
})
server.listen(3000,()=>{
  console.log('listen')
})

node.js处理get请求

node.js接收get请求返回数据
const http = require('http');
const querystring = require('querystring');
const server = http.createServer((req,res)=> {
  const url = req.url
  req.query = querystring.parse(url.split('?')[1]);
  console.log(url,'url',req.query,'req.query')
  res.end(JSON.stringify(req.query))
})
server.listen(8000)

node.js处理post请求

const http = require('http');
const server = http.createServer((req, res)=> {
  console.log(req.headers['content-type']) //传递过来的数据格式
  let postData = ''
  req.on('data', chunk => {
    //随时接收数据
    postData += chunk.toString();
  })
  req.on('end',()=> {
    //什么时候结束什么时候触发
    console.log(postData)
    console.log('123')
    res.end('321')
  })
})
server.listen(8000)

node.js请求综合处理

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])
  //设置返回格式 JSON
  res.setHeader('Content-type', 'application/json')
  //返回数据
  const resData = {
    method,
    url,
    path,
    query
  }
  //返回
  if (method === 'GET') {
    res.end(JSON.stringify(resData))
  }
  if (method === 'POST') {
    let postData = ''
    req.on('data', chunk=>{
      postData += chunk.toString()
    })
    req.on('end',()=>{
      resData.postData = postData
      res.end(JSON.stringify(resData))
    })
  }
})
server.listen(8080)