8 ~~ Expressベースの認証データベース

図1は、第一のデータベースルータ/ api.jsで定義さ/models/User.jsモデルを導入しました            

VARユーザー=(「../モデル/ユーザー」)//ユーザーがコンストラクタ、静的コンストラクタメソッド、動的メソッドを返すを必要とします。これらの方法でデータベースを操作します

Userモデルクラスを介してデータベースの操作に導入後2、

3、momgoose関連文書を参照してください   https://mongoosejs.com/docs/api.html

 

特定コードファイル(赤いフォント変更部) 

、/router/api.js   。 

VaRの急行は=( '表現')が必要です
VARルータ= express.Router()
ユーザー= VAR(「../モデル/ユーザー」)必要 ユーザーコンストラクタ、静的コンストラクタメソッド、動的方法で返す//を。これらの方法でデータベースを操作します

/ **
*統一されたインタフェースの形式に戻ります
* /
応答データがありました。
router.use((REQ、RES、次)=> {
  //戻り値のデータを初期化します
  responseData = {
  コード:0、//エラーコードが返され、デフォルトは0で、0はエラーがないことを意味します
  メッセージ: ''、//エラーメッセージが表示されます。デフォルトでは、エラーは空ではありません
}
 
/ **
* [次の実行されません、プログラムはここで立ち往生されます]
* /
  次()
})

/ **
*ユーザー登録
*登録ロジック
*
* 1、ユーザー名、パスワードを空にすることはできません
* 2、二回同じパスワードです
*
ユーザーが登録されているかどうか* 1、
*データベースクエリ
* /
router.post( '/ユーザ/登録'、(REQ、RES、次)=> {
  console.log(req.body)
 
  //変数に保存されたデータ上を通過
  VARのユーザー名= req.body.username
  VARパスワード= req.body.password
  VAR repassword = req.body.repassword

  //ユーザーが空であるかどうかを判断します
  もし(ユーザ名== ''){
    responseData.code = 1
    responseData.message =「ユーザー名は空にすることはできません」
      
    / **
    *データは、遠位返さ
    *フォームをJSONに
    * /
    res.json(responseData)
    リターン
  }

  //パスワードが空白であるかどうかを判断します
  もし(パスワード== ''){
    responseData.code = 2
    responseData.message =「パスワードは空白ではありません」
    res.json(responseData)
    リターン
  }

  //二度同じパスワードかどうかを判断します
  もし(パスワード!= repassword){
    responseData.code = 3
    responseData.message =「パスワードを入力し、二回一貫性のありません」
    res.json(responseData)
    リターン
  }
 
   / **
  *ユーザー名は、データベースに存在します
  * 1、最初に定義されたデータベースモデル/models/User.jsの導入に行きます
  * /
  User.findOne({
    ユーザ名://クエリのユーザ名とデータベース内の同じユーザー名、ユーザー名は、オブジェクトの戻り値は、マングースです
  })。次に、((ユーザー情報)=> {
    console.log(のUserInfo)
    IF(ユーザー情報){
      responseData.code = 4
      responseData.message =「ユーザ名はすでに存在しています」
      res.json(responseData)
      リターン
    }

    / **
    *登録ユーザーは、データベースに情報を提出します
    * Userクラスを直接操作することができます
    * /
    VARユーザ=新しいユーザー({
      ユーザ名:ユーザ名、
      パスワード:パスワード
    })
 
    user.saveを返します()
  
  })。次に、((newUserInfo)=> {
    console.log(newUserInfo)  
    //正常に登録
    responseData.message =「登録成功」
    res.json(responseData)
  })
 
})

  module.exportsは=ルータ
 
二、/public/js/index.js  
 
$(関数(){
  変数$レジスタ= $( '#レジスタ');
  $ログイン= $( '#ログイン')でした。
 
  $のregister.find( 'a.change')。上( 'クリック'、()=> {
    $のlogin.show();
    $のregister.hide();
  })

  $のlogin.find( 'a.change')。上( 'クリック'、()=> {
    $のlogin.hide();
    $のregister.show();
  })

  / **
  *登録ボタンをクリックしてください=「= AJAXによる」データを提出
  * /
  $のregister.find( 'ボタン')。上( 'クリック'、()=> {
    $アヤックス({
      タイプ:「ポスト」
      URL: '/ API /ユーザー/登録'、
      データ:{
        ユーザ名:$のregister.find( '[名= "ユーザ名"]')のval()、。
        パスワード:$のregister.find( '[名= "パスワード"]')のval()、。
        repassword:$のregister.find( '[名= "repassword"]')のval()、。
      }、
      データ型:「JSON」
      成功:機能(データ){
        console.log(データ)
         $ register.find( '情報')。htmlの(data.message)
        もし(!のdata.code){
          //登録が成功すると、ログインパネルにジャンプ
          setTimeout(()=> {
            $のlogin.show();
            $のregister.hide();
          }、1000)
        }
      }
    });
  })
})

おすすめ

転載: www.cnblogs.com/500m/p/10992789.html