Web服务器数据交互:javascript
经常使用于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文件。java
新建一个简单的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);
解析后的结果:sql
和get同样,新建一个简单的post请求的表单html。数据库
<form action="http://localhost:8080/aaa" method="get"> …………
post传输的数据在body里面。post的数据传递,一个大数据包切成多个小包发送:后端
所以,咱们服务器端能够监听收到的每小段数据包,以及发送结束的消息。浏览器
let str = ''; // 接收到一个一个分段的数据 req.on('data', data => { str += data; }); // 结束 req.on('end', () => { let post = querystring.parse(str); console.log(str, post); });
解析后的结果:服务器
url.parse 能够解析整个url querystring 解析数据部分
数据库分类:
关系型数据库 —— MySQL、Oracle、SQL Server
文件型数据库 —— sqlite
文档型数据库 —— MongoDB
常见经常使用,数据之间是有关系的
特色是简单,轻量级、小巧
存储异构数据,处理速度快,适用于频繁写入的数据。
NoSQL 没有复杂的关系,对性能有极高的要求。 例如redis、memcached、hypertable、bigtable
数据库操做放在后面结合数据库一块儿写。使用一个内存数据暂存用户名密码,学习实现一个简单的注册、登陆的node后端,对提交数据进行简单验证,返回处理结果。