利用node.js+mongodb如何搭建一個簡單登錄注冊的功能詳解
前言
最近突然對數(shù)據(jù)庫和后臺感興趣了,就開始了漫長的學(xué)習(xí)之路,想想自己只是一個前端,只會java斯科瑞普,所以就開始看nodejs,看著看著突然發(fā)現(xiàn)mongodb和nodejs更配哦!,遂就開了我的mongodb之路。下面話不多說了,來一起看看詳細的介紹吧。
mongodb簡介
就超簡潔的說一下,mongo就是一個nosql的數(shù)據(jù)庫,不使用sql的語法,當(dāng)然其實也是大同小異的,增刪改查還是差不多的,但是在概念上mongo還是跟mysql有相當(dāng)大的區(qū)別的;比如在mongo中沒有表的概念,而是一個集合;由于這些概念性的東西有很多,我在這里給各位附上鏈接,你們自己看一下biu!我是鏈接!;
說說我的小demo使用到的一些東西
直接懟package的依賴圖片吧
說下各個部分的作用:
- express:這就是nodejs的一個web應(yīng)用的開發(fā)框架;
- body_parser:這個寫nodejs的應(yīng)該都知道,用于解析客戶端請求的body中的內(nèi)容的一個中間件,因為要用到表單提交,所以需要解析獲得的數(shù)據(jù);
- mongoose:從這個名字就可以知道這個是和mongodb有關(guān)系的依賴;這個依賴是nodejs封裝用來連接和操作mongodb數(shù)據(jù)庫的;
其余幾個我相信各位應(yīng)該都知道,其實這個我相信我不介紹各位應(yīng)該也都知道的,原諒我的話癆!!!
列表結(jié)構(gòu)列表
還是直接懟圖片吧!實在是不想生成tree了!
其實這是一個很簡單的demo!主要還是體驗出nodejs對前端靜態(tài)資源的渲染,以及nodejs的路由,還有其對mongodb的支持!
user.js里面確定了mongoose的一個Schema,也就是寫入數(shù)據(jù)庫的格式
var UserSchema = new Schema({ username : String, userpsw : String, logindate : Date })
這樣就構(gòu)建了一個數(shù)據(jù)模型;
從項目目錄上可以看出,我只是寫了簡單三個頁面,其實最最最主要的只是一個文件,app.js;
app.js內(nèi)容
在這個里面我主要寫了關(guān)于接受前臺傳入的數(shù)據(jù)是怎么存入mongodb的,還有是怎么判斷是否已經(jīng)注冊;是否輸入了正確的賬號密碼的;
在這我放一段檢測注冊的代碼,在注冊成功后就將用戶的信息寫入到數(shù)據(jù)庫
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'}) } } }) });
這樣的話就可以將用戶傳入的信息存入到數(shù)據(jù)庫了;登錄同理,先將傳過來的數(shù)據(jù)在數(shù)據(jù)庫里查詢是否已經(jīng)有,然后再將用戶名和密碼都一一對比,如果匹配的話就返回登錄成功;
說說前端部分
原諒我的表達能力是真的有限,上面的后端各位肯定沒怎么看懂,歡迎去觀看我的源碼;下面來說下我對前端部分的一些處理;
前端部分主要就是在login頁,我做了一個cookie的處理,當(dāng)用戶點擊保存賬戶的時候,我就將用戶的信息存入cookie下次登錄的時候就不用麻煩去輸入用戶名和密碼了;
if($('#mycheck').prop('checked')==true){ setCookie('username',username,7); }
其實也就是當(dāng)?shù)卿涷炞C成功并且用戶check了checkbox的時候?qū)ookie存入;下次登錄的時候直接將cookie值解析,然后放入到用戶名的input框的value值中!
由于我的表達能力有限,文章可能寫的不是那么詳細,有看不懂的可以去看源碼
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持
- Node.js實現(xiàn)登錄注冊功能
- node.js實現(xiàn)簡單登錄注冊功能
- 圖解NodeJS實現(xiàn)登錄注冊功能
- 通過Nodejs搭建網(wǎng)站簡單實現(xiàn)注冊登錄流程
- node.js+express+mySQL+ejs+bootstrop實現(xiàn)網(wǎng)站登錄注冊功能
- Node.js+Express+MySql實現(xiàn)用戶登錄注冊功能
- 用node和express連接mysql實現(xiàn)登錄注冊的實現(xiàn)代碼
- node.js+jQuery實現(xiàn)用戶登錄注冊AJAX交互
- node.js實現(xiàn)登錄注冊頁面
- NodeJs+MySQL實現(xiàn)注冊登錄功能
相關(guān)文章
node.js中module.exports與exports用法上的區(qū)別
Node.js 引入了模塊(Module)概念,一個模塊可以通過module.exports 或 exports 將函數(shù)、變量等導(dǎo)出,以使其它 JavaScript 腳本通過require() 函數(shù)引入并使用。那么node.js中module.exports與exports有什么區(qū)別呢?下面小編給大家解答下2016-09-09前端node Session和JWT鑒權(quán)登錄示例詳解
關(guān)于前端鑒權(quán)登錄是比較常見的需求了,本文將從服務(wù)端渲染和前后端分離的不同角度下演示鑒權(quán),為大家介紹前端node Session和JWT鑒權(quán)登錄示例詳解2022-07-07如何使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序
NoSQL?數(shù)據(jù)庫對于處理大量分布式數(shù)據(jù)非常有用,我們可以在這個數(shù)據(jù)庫中存儲信息,對其進行管理,這篇文章主要介紹了使用?Node.js?將?MongoDB?連接到您的應(yīng)用程序,需要的朋友可以參考下2022-09-09nodejs入門教程二:創(chuàng)建一個簡單應(yīng)用示例
這篇文章主要介紹了nodejs入門教程之創(chuàng)建一個簡單應(yīng)用的方法,涉及nodejs http模塊的引用、端口監(jiān)聽等相關(guān)操作技巧,需要的朋友可以參考下2017-04-04Node.js實現(xiàn)鏈?zhǔn)交卣{(diào)
這篇文章介紹了Node.js實現(xiàn)鏈?zhǔn)交卣{(diào)的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07