最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年07月30日 08:54:57   作者:Procrastination  
這篇文章主要給大家介紹了關(guān)于利用node.js+mongodb如何搭建一個簡單登錄注冊功能的相關(guān)資料,文中通過示例代碼介紹非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

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

mongodb簡介

就超簡潔的說一下,mongo就是一個nosql的數(shù)據(jù)庫,不使用sql的語法,當(dāng)然其實(shí)也是大同小異的,增刪改查還是差不多的,但是在概念上mongo還是跟mysql有相當(dāng)大的區(qū)別的;比如在mongo中沒有表的概念,而是一個集合;由于這些概念性的東西有很多,我在這里給各位附上鏈接,你們自己看一下biu!我是鏈接!;

說說我的小demo使用到的一些東西

直接懟package的依賴圖片吧


說下各個部分的作用:

  • express:這就是nodejs的一個web應(yīng)用的開發(fā)框架;
  • body_parser:這個寫nodejs的應(yīng)該都知道,用于解析客戶端請求的body中的內(nèi)容的一個中間件,因?yàn)橐玫奖韱翁峤?所以需要解析獲得的數(shù)據(jù);
  • mongoose:從這個名字就可以知道這個是和mongodb有關(guān)系的依賴;這個依賴是nodejs封裝用來連接和操作mongodb數(shù)據(jù)庫的;
    其余幾個我相信各位應(yīng)該都知道,其實(shí)這個我相信我不介紹各位應(yīng)該也都知道的,原諒我的話癆!!!

列表結(jié)構(gòu)列表

還是直接懟圖片吧!實(shí)在是不想生成tree了!


其實(shí)這是一個很簡單的demo!主要還是體驗(yàn)出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ù)模型;

從項(xiàng)目目錄上可以看出,我只是寫了簡單三個頁面,其實(shí)最最最主要的只是一個文件,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;
 //通過賬號驗(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)有,然后再將用戶名和密碼都一一對比,如果匹配的話就返回登錄成功;

說說前端部分

原諒我的表達(dá)能力是真的有限,上面的后端各位肯定沒怎么看懂,歡迎去觀看我的源碼;下面來說下我對前端部分的一些處理;
前端部分主要就是在login頁,我做了一個cookie的處理,當(dāng)用戶點(diǎn)擊保存賬戶的時候,我就將用戶的信息存入cookie下次登錄的時候就不用麻煩去輸入用戶名和密碼了;

      if($('#mycheck').prop('checked')==true){
      setCookie('username',username,7);
     }

其實(shí)也就是當(dāng)?shù)卿涷?yàn)證成功并且用戶check了checkbox的時候?qū)ookie存入;下次登錄的時候直接將cookie值解析,然后放入到用戶名的input框的value值中!

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

github項(xiàng)目地址

本地下載

總結(jié)

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

相關(guān)文章

  • NodeJs測試框架Mocha的安裝與使用

    NodeJs測試框架Mocha的安裝與使用

    本文全面介紹如何使用Mocha,讓你輕松上手。如果你以前對測試一無所知,本文也可以當(dāng)作JavaScript單元測試入門。
    2017-03-03
  • 詳解express + mock讓前后臺并行開發(fā)

    詳解express + mock讓前后臺并行開發(fā)

    這篇文章主要介紹了詳解express + mock讓前后臺并行開發(fā),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • node.js中的模塊化標(biāo)準(zhǔn)CommonJS與自定義模塊

    node.js中的模塊化標(biāo)準(zhǔn)CommonJS與自定義模塊

    這篇文章介紹了node.js中的模塊化標(biāo)準(zhǔn)CommonJS與自定義模塊,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Node.js中常用設(shè)計(jì)模式的使用方法總結(jié)

    Node.js中常用設(shè)計(jì)模式的使用方法總結(jié)

    設(shè)計(jì)模式是由經(jīng)驗(yàn)豐富的程序員在日積月累中抽象出的用以解決通用問題的可復(fù)用解決方案,它提供了標(biāo)準(zhǔn)化的代碼設(shè)計(jì)方案提升開發(fā)體驗(yàn),本文主要來和大家討論一下Node.js中設(shè)計(jì)模式的重要性并提供一些代碼示例,感興趣的可以了解下
    2023-10-10
  • 使用koa-log4管理nodeJs日志筆記的使用方法

    使用koa-log4管理nodeJs日志筆記的使用方法

    這篇文章主要介紹了使用koa-log4管理nodeJs日志筆記的使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 使用node.js實(shí)現(xiàn)微信小程序?qū)崟r聊天功能

    使用node.js實(shí)現(xiàn)微信小程序?qū)崟r聊天功能

    在微信這個聊天工具里的小程序上實(shí)現(xiàn)聊天功能,總覺得很詫異,今天小編給大家?guī)砹耸褂胣ode.js實(shí)現(xiàn)微信小程序?qū)崟r聊天功能,感興趣的朋友一起看看吧
    2018-08-08
  • nodejs模塊nodemailer基本使用-郵件發(fā)送示例(支持附件)

    nodejs模塊nodemailer基本使用-郵件發(fā)送示例(支持附件)

    本篇文章主要介紹了nodejs模塊nodemailer基本使用-郵件發(fā)送示例(支持附件),具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Nodejs中的JWT和Session的使用

    Nodejs中的JWT和Session的使用

    這篇文章主要介紹了Nodejs中的JWT和Session的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Node.js?中的?module.exports?與?exports區(qū)別介紹

    Node.js?中的?module.exports?與?exports區(qū)別介紹

    這篇文章主要介紹了Node.js中的module.exports與exports區(qū)別介紹,每個模塊中都有module對象,存放了當(dāng)前模塊相關(guān)的信息,更多相關(guān)內(nèi)容需要的朋友可以參考一下
    2022-09-09
  • 使用GruntJS構(gòu)建Web程序之Tasks(任務(wù))篇

    使用GruntJS構(gòu)建Web程序之Tasks(任務(wù))篇

    任務(wù)(Tasks)是grunt的核心概念,你所做的很多工作比如資源合并(concat)、壓縮(uglify)都是在配置任務(wù)。 每次grunt運(yùn)行的時候,你指定的一個或多個任務(wù)也在運(yùn)行,如果你沒有指定任務(wù),那么一個默認(rèn)名為“default”的任務(wù)將自動運(yùn)行。
    2014-06-06

最新評論

永善县| 通渭县| 曲阜市| 冕宁县| 尉犁县| 银川市| 永清县| 闵行区| 苗栗市| 泸水县| 佛教| 太谷县| 晋宁县| 三明市| 章丘市| 美姑县| 静乐县| 延长县| 北碚区| 南皮县| 同仁县| 永修县| 石景山区| 宁国市| 晴隆县| 通河县| 虞城县| 新疆| 同江市| 东至县| 宣恩县| 瑞丽市| 甘肃省| 思茅市| 贺州市| 江城| 漳州市| 赤水市| 湄潭县| 三门峡市| 元阳县|