koa 2シリーズ教程:koa 2登録機能を実現します.
5190 ワード
koa 2シリーズの教程は、継続的に更新されます. koa 2シリーズ教程:koa 2応用初見 koa 2シリーズ教程:Coa 2処理静的ファイル koa 2シリーズ教程:koa 2はテンプレートエンジン を使用しています. koa 2シリーズ教程:koa 2ルーティング制御中間 koa 2シリーズ教程:総合koa 2構築登録ページ koa 2シリーズ教程:koa 2登録機能 を実現します.
これは主に先日の内容を結び付けて、実際の判例の効果を作ります.
バージョン:
プロジェクト構造:
先日、私達は登録と登録のページデモを実現しました.今日は主にこのような内容を実現しました.新しいユーザ を登録する.、このメールボックスが登録されているかどうかを判断する .登録したかどうか判断する .ログイン時のパスワードの正しい このコードの住所:https://github.com/xiaqijian/...
明日、私達はセッションを利用して登録状態の判断を実現します.
今日のこのページは前のコードに基づいて追加されました.主要コードを晒します.
1.user.jsを編集する
2.登録ルートの編集
4.サービスの開始
登録を試みて、コンソールを開けば、関連したバックグラウンドのデータが見えます.
本文は終わりです.次の文章はsessionを利用して登録状態を判断します.
このコードの住所:https://github.com/xiaqijian/...
この文章は初めてです.nodeの先端です.
注目してもいいです
これは主に先日の内容を結び付けて、実際の判例の効果を作ります.
バージョン:
プロジェクト構造:
先日、私達は登録と登録のページデモを実現しました.今日は主にこのような内容を実現しました.
明日、私達はセッションを利用して登録状態の判断を実現します.
今日のこのページは前のコードに基づいて追加されました.主要コードを晒します.
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
によるポストデータの解析を追加し、ctx.request.body
を用いて取得する.4.サービスの開始
node index.js
ブラウザを開くlocal host:3000登録を試みて、コンソールを開けば、関連したバックグラウンドのデータが見えます.
本文は終わりです.次の文章はsessionを利用して登録状態を判断します.
このコードの住所:https://github.com/xiaqijian/...
この文章は初めてです.nodeの先端です.
注目してもいいです