利用node.js+mongodb如何搭建一個簡單登入註冊的功能詳解,node.jsmongodb
前言
最近突然對資料庫和後台感興趣了,就開始了漫長的學習之路,想想自己只是一個前端,只會java斯科瑞普,所以就開始看nodejs,看著看著突然發現mongodb和nodejs更配哦!,遂就開了我的mongodb之路。下面話不多說了,來一起看看詳細的介紹吧。
mongodb簡介
就超簡潔的說一下,mongo就是一個nosql的資料庫,不使用sql的文法,當然其實也是大同小異的,增刪改查還是差不多的,但是在概念上mongo還是跟mysql有相當大的區別的;比如在mongo中沒有表的概念,而是一個集合;由於這些概念性的東西有很多,我在這裡給各位附上連結,你們自己看一下biu!我是連結!;
說說我的小demo使用到的一些東西
直接懟package的依賴圖片吧
說下各個部分的作用:
- express:這就是nodejs的一個web應用的開發架構;
- body_parser:這個寫nodejs的應該都知道,用於解析用戶端請求的body中的內容的一個中介軟體,因為要用到表單提交,所以需要解析獲得的資料;
- mongoose:從這個名字就可以知道這個是和mongodb有關係的依賴;這個依賴是nodejs封裝用來串連和操作mongodb資料庫的;
其餘幾個我相信各位應該都知道,其實這個我相信我不介紹各位應該也都知道的,原諒我的話癆!!!
列表結構列表
還是直接懟圖片吧!實在是不想產生tree了!
其實這是一個很簡單的demo!主要還是體驗出nodejs對前端靜態資源的渲染,以及nodejs的路由,還有其對mongodb的支援!
user.js裡面確定了mongoose的一個Schema,也就是寫入資料庫的格式
var UserSchema = new Schema({ username : String, userpsw : String, logindate : Date})
這樣就構建了一個資料模型;
從項目目錄上可以看出,我只是寫了簡單三個頁面,其實最最最主要的只是一個檔案,app.js;
app.js內容
在這個裡面我主要寫了關於接受前台傳入的資料是怎麼存入mongodb的,還有是怎麼判斷是否已經註冊;是否輸入了正確的帳號密碼的;
在這我放一段檢測註冊的代碼,在註冊成功後就將使用者的資訊寫入到資料庫
app.post('/register',(req, res) => { console.log('user in session') console.log(req.session); //先查詢有沒有這個user console.log("req.body"+req.body); var UserName = req.body.username; var UserPsw = req.body.password; //通過帳號驗證 var updatestr = {username: UserName}; res.setHeader('Content-type','application/json;charset=utf-8') console.log(updatestr); userSchema.find(updatestr, function(err, obj){ if (err) { console.log("Error:" + err); } else { if(obj.length == 0){ insert(UserName,UserPsw); res.send({status:'success',message:'true'}) }else{ res.send({status:'success',message:'false'}) } } }) });
這樣的話就可以將使用者傳入的資訊存入到資料庫了;登入同理,先將傳過來的資料在資料庫裡查詢是否已經有,然後再將使用者名稱和密碼都一一對比,如果匹配的話就返回登入成功;
說說前端部分
原諒我的表達能力是真的有限,上面的後端各位肯定沒怎麼看懂,歡迎去觀看我的源碼;下面來說下我對前端部分的一些處理;
前端部分主要就是在login頁,我做了一個cookie的處理,當使用者點擊儲存賬戶的時候,我就將使用者的資訊存入cookie下次登入的時候就不用麻煩去輸入使用者名稱和密碼了;
if($('#mycheck').prop('checked')==true){ setCookie('username',username,7); }
其實也就是當登入驗證成功並且使用者check了checkbox的時候將cookie存入;下次登入的時候直接將cookie值解析,然後放入到使用者名稱的input框的value值中!
由於我的表達能力有限,文章可能寫的不是那麼詳細,有看不懂的可以去看源碼
github項目地址
本地下載
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流,謝謝大家對幫客之家的支援