図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)
}
}
});
})
})