前言
最近突然對(duì)數(shù)據(jù)庫和后臺(tái)感興趣了,就開始了漫長(zhǎng)的學(xué)習(xí)之路,想想自己只是一個(gè)前端,只會(huì)java斯科瑞普,所以就開始看nodejs,看著看著突然發(fā)現(xiàn)mongodb和nodejs更配哦!,遂就開了我的mongodb之路。下面話不多說了,來一起看看詳細(xì)的介紹吧。
mongodb簡(jiǎn)介
就超簡(jiǎn)潔的說一下,mongo就是一個(gè)nosql的數(shù)據(jù)庫,不使用sql的語法,當(dāng)然其實(shí)也是大同小異的,增刪改查還是差不多的,但是在概念上mongo還是跟mysql有相當(dāng)大的區(qū)別的;比如在mongo中沒有表的概念,而是一個(gè)集合;由于這些概念性的東西有很多,我在這里給各位附上鏈接,你們自己看一下biu!我是鏈接!;
說說我的小demo使用到的一些東西
直接懟package的依賴圖片吧
說下各個(gè)部分的作用:
列表結(jié)構(gòu)列表
還是直接懟圖片吧!實(shí)在是不想生成tree了!
其實(shí)這是一個(gè)很簡(jiǎn)單的demo!主要還是體驗(yàn)出nodejs對(duì)前端靜態(tài)資源的渲染,以及nodejs的路由,還有其對(duì)mongodb的支持!
user.js里面確定了mongoose的一個(gè)Schema,也就是寫入數(shù)據(jù)庫的格式
var UserSchema = new Schema({ username : String, userpsw : String, logindate : Date })
這樣就構(gòu)建了一個(gè)數(shù)據(jù)模型;
從項(xiàng)目目錄上可以看出,我只是寫了簡(jiǎn)單三個(gè)頁面,其實(shí)最最最主要的只是一個(gè)文件,app.js;
app.js內(nèi)容
在這個(gè)里面我主要寫了關(guān)于接受前臺(tái)傳入的數(shù)據(jù)是怎么存入mongodb的,還有是怎么判斷是否已經(jīng)注冊(cè);是否輸入了正確的賬號(hào)密碼的;
在這我放一段檢測(cè)注冊(cè)的代碼,在注冊(cè)成功后就將用戶的信息寫入到數(shù)據(jù)庫
app.post('/register',(req, res) => { console.log('user in session') console.log(req.session); //先查詢有沒有這個(gè)user console.log("req.body"+req.body); var UserName = req.body.username; var UserPsw = req.body.password; //通過賬號(hào)驗(yàn)證 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)有,然后再將用戶名和密碼都一一對(duì)比,如果匹配的話就返回登錄成功;
說說前端部分
原諒我的表達(dá)能力是真的有限,上面的后端各位肯定沒怎么看懂,歡迎去觀看我的源碼;下面來說下我對(duì)前端部分的一些處理;
前端部分主要就是在login頁,我做了一個(gè)cookie的處理,當(dāng)用戶點(diǎn)擊保存賬戶的時(shí)候,我就將用戶的信息存入cookie下次登錄的時(shí)候就不用麻煩去輸入用戶名和密碼了;
if($('#mycheck').prop('checked')==true){ setCookie('username',username,7); }
其實(shí)也就是當(dāng)?shù)卿涷?yàn)證成功并且用戶check了checkbox的時(shí)候?qū)ookie存入;下次登錄的時(shí)候直接將cookie值解析,然后放入到用戶名的input框的value值中!
由于我的表達(dá)能力有限,文章可能寫的不是那么詳細(xì),有看不懂的可以去看源碼
github項(xiàng)目地址
本地下載
總結(jié)
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com