在mongoose和express中使用异步等待

在mongoose和express中使用异步等待,express,mongoose,Express,Mongoose,在这段代码中,每当有人输入已经存在的用户名时,我都会收到以下错误: 'Error[ERR\u HTTP\u HEADERS\u SENT]:发送到客户端后无法设置头' 有人知道怎么解决这个问题吗?谢谢 const express = require('express') const router = express.Router() const bcrypt = require('bcryptjs') const users= require('./users') router.post(

在这段代码中,每当有人输入已经存在的用户名时,我都会收到以下错误:

'Error[ERR\u HTTP\u HEADERS\u 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'
                })
            })
        })
    })


})```