【Web全栈课程7】Node数据交互简介

Web服务器数据交互:javascript

  1. 返回文件
  2. 处理数据交互请求(GET、POST)
  3. 数据库交互(后续再讲)

1.返回文件

经常使用于response返回数据的方法:setHead,write,writeHead
基于请求文件返回服务器端对应文件,简单实现以下:html

fs.readFile(`www${req.url}`, (err, data)=> {
    if (err){
        res.writeHead('404'); //设置状态码
        res.write('error');
    } else {
        res.write(data);
    }
    res.end();
})

从浏览器请求文件时,后端返回了对应的html文件。
image.pngjava

2.处理数据交互请求

get

新建一个简单的get请求的表单html,提交到咱们本地的node服务器。node

<form  action="http://localhost:8080/aaa"  method="get">
用户:<input  type="text"  name="user"><br>
密码:<input  type="password"  name="pass"><br>
<input  type="submit"  value="提交">
</form>

get传递的数据在url中,经过node的url模块,能够将url解析成对象数据。redis

let obj = url.parse(req.url);

解析后的结果:
image.pngsql

post

和get同样,新建一个简单的post请求的表单html。数据库

<form  action="http://localhost:8080/aaa"  method="get">
…………

post传输的数据在body里面。post的数据传递,一个大数据包切成多个小包发送:后端

  1. 大数据包不切块发送,其余全部网络交互被阻塞,须要等待大数据包传输完成才能进行。
  2. 传输失败的时候只须要重传失败的一小段,速度快。

所以,咱们服务器端能够监听收到的每小段数据包,以及发送结束的消息。浏览器

let str = '';
// 接收到一个一个分段的数据
req.on('data', data  => {
    str += data;
});
// 结束
req.on('end', () => {
    let post = querystring.parse(str);
    console.log(str, post);
});

解析后的结果:
image.png服务器

url.parse 能够解析整个url
querystring 解析数据部分

3.数据库交互

数据库分类:
关系型数据库 —— MySQL、Oracle、SQL Server
文件型数据库 —— sqlite
文档型数据库 —— MongoDB

1.关系型数据库

常见经常使用,数据之间是有关系的

2.文件型数据库

特色是简单,轻量级、小巧

3.文档型数据库

存储异构数据,处理速度快,适用于频繁写入的数据。

NoSQL 没有复杂的关系,对性能有极高的要求。
例如redis、memcached、hypertable、bigtable

数据库操做放在后面结合数据库一块儿写。使用一个内存数据暂存用户名密码,学习实现一个简单的注册、登陆的node后端,对提交数据进行简单验证,返回处理结果。
image.png

相关文章
相关标签/搜索