国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

koa2系列教程:koa2實現(xiàn)登錄注冊功能

baiy / 1632人閱讀

摘要:系列教程,持續(xù)更新系列教程應用初見系列教程處理靜態(tài)文件系列教程使用模板引擎系列教程路由控制中間件系列教程綜合搭建登錄注冊頁面系列教程實現(xiàn)登錄注冊功能這個主要結合前幾天的內容,做個實際案例的效果版本項目結構前幾天,我們把注冊和登錄的頁面實現(xiàn)了

koa2系列教程,持續(xù)更新

koa2系列教程:koa2應用初見

koa2系列教程:koa2處理靜態(tài)文件

koa2系列教程:koa2使用模板引擎

koa2系列教程:koa2路由控制中間件

koa2系列教程:綜合koa2搭建登錄注冊頁面

koa2系列教程:koa2實現(xiàn)登錄注冊功能

這個主要結合前幾天的內容,做個實際案例的效果

版本:

項目結構:

前幾天,我們把注冊和登錄的頁面demo實現(xiàn)了,今天我們主要實現(xiàn)這么幾個內容

注冊新用戶

判斷該郵箱是否注冊過

登錄判斷是否注冊過

登錄時的密碼的正確

本文代碼地址:https://github.com/xiaqijian/...

明天,我們將利用session實現(xiàn)登錄狀態(tài)判斷

今天的這篇是在之前的代碼基礎上添加的,我們就曬主要的代碼

1.編輯user.js
// db/user.js
const mongoose = require("./db")
const Schema = mongoose.Schema;

const ceshiSchema = new Schema({
  email: String,
  name: String,
  password: String
});

const MyModel = mongoose.model("User", ceshiSchema);


class Userdb {
  constructor () {

  }
// 查詢
  query (obj = {}) {
     return new Promise((resolve, reject) => {
       MyModel.find(obj, (err, res) => {
         if(err) {
           reject(err)
         }
         resolve(res)
       })
     })
  }
queryEmail (em) {
   return new Promise((resolve, reject) => {
     MyModel.find({email: em}, (err, res) => {
       if(err) {
         reject(err)
       }
       const len = res.length
       if(len >= 1){
         // 存在
         resolve(res)
       }else {
         // 不存在
         resolve(null)
       }
     })
   })
}
// 保存
  save (obj) {
     const m = new MyModel(obj)
     return new Promise((resolve, reject)=> {
       m.save((err, res) => {
         if (err) {
           reject(err)
         }
         resolve(res)
         console.log(res)
       })
     })
     
  }
}
module.exports = new Userdb()

上面主要查詢用戶,和保存用戶

2.編輯 登錄注冊路由
// router/index.js

const Router = require("koa-router")


// 
const User = require("../db/user")
const home = new Router()

home.get("/", async (ctx) => {
    let title = "首頁"
    await ctx.render("index", {
        title
    })
})


// 子路由2
const page = new Router()

page.get("/404", async (ctx) => {
    let title = "404"
    await ctx.render("err", {
        title
    })
})


const login = new Router()

login.get("/", async (ctx) => {
    let title = "登錄"
    await ctx.render("login", {
        title
    })
}).post("/", async (ctx) => {
    const data = ctx.request.body
    let queryres = await User.queryEmail(data.email)
    console.log(queryres)
    if (queryres) {
        if(queryres[0].password === data.password) {
            ctx.body = {
                "code": 1,
                "data": queryres[0],
                "mesg": "登錄成功"
            }
        }else {
            ctx.body = {
                "code": 0,
                "data": {},
                "mesg": "密碼錯誤"
            }
        }
        
    }else {
        ctx.body = {
            "code": 0,
            "data": {},
            "mesg": "沒有該用戶,去注冊吧"
        }
    }
})

const register = new Router()

register.get("/", async (ctx) => {
    let title = "注冊"
    await ctx.render("register", {
        title
    })
}).post("/", async (ctx) => {
    const data = ctx.request.body
    let queryres = await User.queryEmail(data.email)
    if (queryres) {
        ctx.body = {
            "code": 0,
            "data": {},
            "mesg": "該郵箱已經存在哦"
        }
    }else {
        await User.save(data)
        ctx.body = {
            "code": 1,
            "data": {},
            "mesg": "保存成功"
        }
    }
   
})

// 裝載所有子路由
let router = new Router()
router.use("/", home.routes(), home.allowedMethods())
router.use("/page", page.routes(), page.allowedMethods())
router.use("/login", login.routes(), login.allowedMethods())
router.use("/register", register.routes(), register.allowedMethods())


module.exports = router
3.編輯index.js
const Koa = require("koa")
const views = require("koa-views")
const statics =  require("koa-static")
const bodyparser = require("koa-bodyparser")
const path = require("path")
const router =  require("./router")
const app = new Koa()

const staticPath = "./static"

app.use(statics(
  path.join(__dirname, staticPath)
))
app.use(bodyparser())

// 加載模板引擎
app.use(views(path.join(__dirname, "./views"), {
    extension: "ejs"
  }))

// 加載路由中間件
app.use(router.routes()).use(router.allowedMethods())

app.listen(3000, () => {
    console.log("localhost:3000")
})

這個和之前的內容增加了koa-bodyparser對post數據的解析,利用ctx.request.body獲取

4.啟動服務
node index.js

打開瀏覽器localhost:3000

嘗試去登錄注冊一下,打開控制臺,就可以看得到相關后臺返回的數據

本文結束,下次文章利用session對登錄狀態(tài)的判斷

本文代碼地址:https://github.com/xiaqijian/...

本文首發(fā)于:node前端

不妨關注一下

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99678.html

相關文章

  • koa2系列教程:綜合koa2搭建登錄注冊頁面

    摘要:系列教程,持續(xù)更新系列教程應用初見系列教程處理靜態(tài)文件系列教程使用模板引擎系列教程路由控制中間件系列教程綜合搭建登錄注冊頁面系列教程實現(xiàn)登錄注冊功能本文源碼地址這篇是將前幾天的內容做個綜合,運用靜態(tài)文件處理,路由,模板引擎我的版本項目結構是 koa2系列教程,持續(xù)更新 koa2系列教程:koa2應用初見 koa2系列教程:koa2處理靜態(tài)文件 koa2系列教程:koa2使用模板引擎 ...

    li21 評論0 收藏0
  • koa2系列教程koa2應用初見

    摘要:系列教程,持續(xù)更新系列教程應用初見系列教程處理靜態(tài)文件系列教程使用模板引擎系列教程路由控制中間件系列教程綜合搭建登錄注冊頁面系列教程實現(xiàn)登錄注冊功能這篇教程主要介紹構建服務器,簡單引用本教程的版本要格外注意版本號案例簡單利用搭建服務器文件夾 koa2系列教程,持續(xù)更新 koa2系列教程:koa2應用初見 koa2系列教程:koa2處理靜態(tài)文件 koa2系列教程:koa2使用模板引擎 ...

    import. 評論0 收藏0
  • koa2系列教程koa2處理靜態(tài)文件

    摘要:系列教程,持續(xù)更新系列教程應用初見系列教程處理靜態(tài)文件系列教程使用模板引擎系列教程路由控制中間件系列教程綜合搭建登錄注冊頁面系列教程實現(xiàn)登錄注冊功能這篇主要介紹處理靜態(tài)文件的中間件用到的版本項目的結構大家可以往文件夾里面添加點東西編輯啟動 koa2系列教程,持續(xù)更新 koa2系列教程:koa2應用初見 koa2系列教程:koa2處理靜態(tài)文件 koa2系列教程:koa2使用模板引擎 k...

    madthumb 評論0 收藏0
  • koa2系列教程koa2使用模板引擎

    摘要:系列教程,持續(xù)更新系列教程應用初見系列教程處理靜態(tài)文件系列教程使用模板引擎系列教程路由控制中間件系列教程綜合搭建登錄注冊頁面系列教程實現(xiàn)登錄注冊功能這篇教大家如何使用模板引擎這里我們使用模板引擎做個例子,你們自己選擇自己熟練的模板引擎使用的 koa2系列教程,持續(xù)更新 koa2系列教程:koa2應用初見 koa2系列教程:koa2處理靜態(tài)文件 koa2系列教程:koa2使用模板引擎 ...

    ZoomQuiet 評論0 收藏0
  • koa2系列教程koa2路由控制中間件

    摘要:系列教程,持續(xù)更新系列教程應用初見系列教程處理靜態(tài)文件系列教程使用模板引擎系列教程路由控制中間件系列教程綜合搭建登錄注冊頁面這篇我們來使用一個控制一下路由本篇的版本注意版本哦目錄結構編輯子路由子路由裝載所有子路由加載路由中間件啟動服務, koa2系列教程,持續(xù)更新 koa2系列教程:koa2應用初見 koa2系列教程:koa2處理靜態(tài)文件 koa2系列教程:koa2使用模板引擎 ko...

    lily_wang 評論0 收藏0

發(fā)表評論

0條評論

baiy

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<