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後端,對提交數據進行簡單驗證,返回處理結果。