老师,我在注册这页输入注册信息为啥一直报的是注册失败呢

老师,我在注册这页输入注册信息为啥一直报的是注册失败呢

users.js

const router = require('koa-router')()

const register = require('../controller/user')


router.prefix('/users')



// 注册

router.post('/register', async(ctx, next) => {

// 获取注册信息(前端post过来的)

const userInfo = ctx.request.body;

// 提交注册

try {

const newUser = await register(userInfo)      // 调用controller

await register(userInfo)

// 成功

ctx.body = {

errno: 0,

data: newUser

}

} catch(ex) {

console.error('注册失败', ex);

ctx.body = {

errno: -1,

message: '注册失败'

}

}


})


module.exports = router




https://img1.sycdn.imooc.com//climg/628af90b09ac6a7523100934.jpg

https://img1.sycdn.imooc.com//climg/628af91709988fbc14900632.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕慕子 2022-05-23 14:13:27

同学你好,根据提供的部分代码,在源码中测试,是因为引入register方法方式不对,修改后就可以了,示例:

https://img1.sycdn.imooc.com//climg/628b2600094b241d13940392.jpg

祝学习愉快!

  • 提问者 微微Vivian哦耶 #1

    改完之后还是注册失败

    users.js

    const router = require('koa-router')()

    const {register} = require('../controller/user')


    router.prefix('/users')



    // 注册

    router.post('/register', async(ctx, next) => {

    // 获取注册信息(前端post过来的)

    const userInfo = ctx.request.body;

    // 提交注册

    try {

    const newUser = await register(userInfo)      // 调用controller

    await register(userInfo)

    // 成功

    ctx.body = {

    errno: 0,

    data: newUser

    }

    } catch(ex) {

    console.error('注册失败', ex);

    ctx.body = {

    errno: -1,

    message: '注册失败'

    }

    }


    })


    module.exports = router



    controller/user.js

    // user controller

    const User = require('../model/User');


    // 注册

    async function register(userInfo = {}) {

    // 插入数据库

    const newUser = await User.create(userInfo)

    // 返回注册的用户信息

    return newUser

    }


    module.exports = {

    register

    }



    app.js

    const Koa = require('koa')

    const app = new Koa()

    const views = require('koa-views')

    const json = require('koa-json')

    const onerror = require('koa-onerror')

    const bodyparser = require('koa-bodyparser')

    const logger = require('koa-logger')

    const cors = require('koa2-cors')

    const index = require('./routes/index')

    const users = require('./routes/users')


    // error handler

    onerror(app)


    // 服务端支持跨域

    app.use(cors ({

    origin: 'http://localhost:8080',     // 支持前端哪个域可以跨域

    credentials: true                    // 允许跨域的时候带着cookie

    }))


    // middlewares

    app.use(bodyparser({

    enableTypes:['json', 'form', 'text']

    }))

    app.use(json())

    app.use(logger())

    app.use(require('koa-static')(__dirname + '/public'))


    app.use(views(__dirname + '/views', {

    extension: 'pug'

    }))


    // logger

    app.use(async (ctx, next) => {

    const start = new Date()

    await next()

    const ms = new Date() - start

    console.log(`${ctx.method} ${ctx.url} - ${ms}ms`)

    })


    // routes

    app.use(index.routes(), index.allowedMethods())

    app.use(users.routes(), users.allowedMethods())


    // error-handling

    app.on('error', (err, ctx) => {

    console.error('server error', err, ctx)

    });


    module.exports = app


    comment.js

    // Comment Model

    const mongoose = require('../db/db')


    const CommentSchema = mongoose.Schema({

    content: {

    type: String,

    required: true,

    },

    username: String

    })


    const Comment = mongoose.model('comment', CommentSchema)


    module.exports = Comment





    2022-06-04 15:19:30
  • 根据粘贴的代码测试,由于用户名要求是唯一的,而routes/users.js文件中,重复调用register方法,向数据库中重复插入一条数据,导致注册失败。

    建议修改:删掉重复调用的代码,重启项目后再测试下

    https://img1.sycdn.imooc.com//climg/629c227c0917f2f615701280.jpg

    祝学习愉快~

    2022-06-05 11:27:18
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师