国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

利用node.js+mongodb如何搭建一個簡單登錄注冊的功能詳解

2019-11-19 15:57:10
字體:
供稿:網(wǎng)友

前言

最近突然對數(shù)據(jù)庫和后臺感興趣了,就開始了漫長的學(xué)習(xí)之路,想想自己只是一個前端,只會java斯科瑞普,所以就開始看nodejs,看著看著突然發(fā)現(xiàn)mongodb和nodejs更配哦!,遂就開了我的mongodb之路。下面話不多說了,來一起看看詳細(xì)的介紹吧。

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)有,然后再將用戶名和密碼都一一對比,如果匹配的話就返回登錄成功;

說說前端部分

原諒我的表達(dá)能力是真的有限,上面的后端各位肯定沒怎么看懂,歡迎去觀看我的源碼;下面來說下我對前端部分的一些處理;
前端部分主要就是在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值中!

由于我的表達(dá)能力有限,文章可能寫的不是那么詳細(xì),有看不懂的可以去看源碼

github項目地址

本地下載

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網(wǎng)的支持

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 和林格尔县| 保靖县| 永福县| 西昌市| 阜南县| 普兰县| 扶风县| 偃师市| 连平县| 临猗县| 察哈| 繁昌县| 运城市| 长春市| 漯河市| 湘乡市| 霍邱县| 固安县| 娱乐| 佛坪县| 竹溪县| 遂溪县| 永修县| 英吉沙县| 杂多县| 建瓯市| 定日县| 垦利县| 永善县| 大庆市| 溆浦县| 灵石县| 商丘市| 桐乡市| 洞头县| 江华| 青州市| 永州市| 富宁县| 章丘市| 赞皇县|