node核心 http模块

node作为服务器更多的是web服务器

1.http模块

首先:http是一个协议。里面有通信机制,状态码一大堆乱七八糟的东西。自己写猴年马月都写不出来,node通过这个http这个对象帮我们集成。直接用

服务器对象: http.createSever()【快速搭建一个服务器,集成好】

let http = require('http')

http.createServer(() => {
    content
}).listen(8088)
//当访问localhost:8088 content就会输出到服务器
let http = require('http')
let fs = require('fs')
http.createServer((request, response) => {
   console.log(request.url)
    fs.readFile(`./${request.url}`, (err, data) => {
        if (err) {

        } else {
            response.end(data)
        }
    })
}).listen(8088)
//当访问localhost:8088 content就会输出到服务器

 

let http = require('http')
let fs = require('fs')
http.createServer((request, response) => {
   console.log(request.url)
    fs.readFile(`./${request.url}`, (err, data) => {
        if (err) {
            response.writeHead(404)
            response.end('data')
        } else {
            response.writeHead(200) //这行可不写,默认
            response.end(data)
        }
    })
}).listen(8088)
//当访问localhost:8088 content就会输出到服务器

 2.Node中的数据交互

头部:信息 不能大于32k (url 浏览器版本 内核)

身体:数据 不能大于2g(超过只能用插件)

get请求方法

1.主要用于获取数据

2.数据是放在url里进行传输的

let http = require('http')
let fs = require('fs')
http.createServer((request, response) => {
   console.log(request.url)
    let [path, query] = request.url.split('?')
    console.log(path, query)
}).listen(8088)
//当访问localhost:8088 content就会输出到服务器

//html文件
<form action="http://localhost:8088/1.html" method="get"> action数据提交的地址
    用户名<br><input type="text" name="username">
    密码<br><input type="text" name="password">
    <br><input type="submit">
</form>

//使用新模块
let http = require('http')
let fs = require('fs')
let url = require('url')
http.createServer((request, response) => {
   console.log(url.parse(request.url, true))
}).listen(8088)
//当访问localhost:8088 content就会输出到服务器

 GET请求

参数放在url中 放在头部

数据比较小(一次就传输了)

POST请求

数据放在body里面传输

数据比较大(一段一段传输,一般传输的是二进制 buffer)

也可以放在url中

let http = require('http')
let fs = require('fs')
let url = require('url')
http.createServer((request, response) => {
   let result = []
   request.on('data',(buffer) => {
      result.push(buffer)
   })  //data事件,每发送一段data数据,就执行一次data事件。on比较像绑定
   request.on('end', () => {
     var data = Buffer.concat(result)
      console.log(data, result)   // 因为我们需要的是一个buffer数据格式
   })
}).listen(8088)
//引入字符串切片工具
let http = require('http')
let fs = require('fs')
let querystring = require('querystring')
let url = require('url')
http.createServer((request, response) => {
   let result = []
   request.on('data',(buffer) => {
      result.push(buffer)
   })  //data事件,每发送一段data数据,就执行一次data事件。on比较像绑定
   request.on('end', () => {
     var data = Buffer.concat(result).toString()
      console.log(querystring.parse(data))   // 因为我们需要的是一个buffer数据格式
   })
}).listen(8088)

上面例子只阐述字符串的转译

总结(数据通信)

1.get 特性

  • url中 ?后面
  • < 32k(http协议规定的)
  • url模块(帮我们处理url)  url.parse(req.url  true) true帮我们转化json

2.post特性

  • 放在body里面
  • 数据大 2G
  • querystring模块  (处理数据)
    querystring.parse(data)

案例

什么是接口:不同功能层之间的通信规则称为接口

参数:

返回值

接口设计

‘/login’ 接口地址(登陆接口)

username,password(前端提供)

get

 

/reg

post

返回值

{
    err:1
   mas:''"  //错误信息
}//前端希望看到的返回值json

 

接口文档:接口如何使用

 

posted @ 2020-02-27 12:54  容忍君  阅读(307)  评论(0)    收藏  举报