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
接口文档:接口如何使用
本人是一个技术爱好者
1.但是每个技术爱好者都是从萌新开始的
2.我所有的博文都是我各方资料查阅(看的比较乱比较杂,因为有些是群里讨论等等来源,无法辨别出处,所以我的文章都是没有写明出处,都是我个人消化后整理,)
3.但是没有经过我实践的我一般会标注
4.希望大家共同交流共同进步,指出我的不足 谢谢

浙公网安备 33010602011771号