将异步等待与猫鼬和快递一起使用

时间:2020-06-07 00:57:48

标签: express mongoose

在这段代码中,只要有人输入已经存在的用户名,我就会收到此错误:

“错误[ERR_HTTP_HEADERS_SENT]:将标头发送到客户端后,无法设置标头”

有人知道如何解决这个问题吗?谢谢。


const express = require('express')
const router = express.Router()
const bcrypt = require('bcryptjs')
const users= require('./users')


router.post('/reg', async (req, res, next) => {
    let { firstname, lastname, username, email, password, confirm_password } = req.body
    if (password !== confirm_password) {
        res.status(400).json({
            msg: 'passwords dont match'
        })
        return
    }
    await (users.findOne({username: username})).then(user => {
        if(user) {
            res.status(400).json({
                msg: `username already exists`
            })
            return
        }
    })
    await users.findOne({email: email}).then(user => {
        if(user) {
            res.status(400).json({
                msg: 'email alraedy exists'
            })
            return
        }
    })

    let  newUser = new users({
        firstname,
        lastname,
        username,
        password,
        email
    })
    bcrypt.genSalt(10, (err, salt) => {
        bcrypt.hash(newUser.password, salt, (err, hash) => {
            if (err) throw err
            newUser.password = hash
            newUser.save().then(user => {
                return res.status(201).json({
                    success: true,
                    msg: 'you successfully signed up'
                })
            })
        })
    })


})```

0 个答案:

没有答案