nodejs中跳过了嵌套的mysql查询



我正在尝试创建一个"groupe",然后将其创建者作为管理员插入"groupemembers"表中,但第二个查询被跳过

router.post('/createGroupe/:userId', upload.single('file'), (req, res) => {
    let groupe = req.body
    // req.body containing the groupe title, description
    let userId = req.params.userId
    let groupeId
    groupe['image'] = req.file
    db.query('insert into groupes set ?', groupe, function(err, result){
        if (err) throw err;
        groupeId = result.insertId.toString()
        db.query("insert into groupemembers set ?", [groupeId, userId, 'admin'], function (err, result){
            console.log(groupeId)
            if (err) return err;
        })
        res.send(result.insertId.toString())
    })
})

您需要学习回调样式,甚至更好的异步/等待样式。更易于编码。

但出于你的特殊考虑,我认为你想把res.send排成一行因为这样,您将在执行第二个查询之后调用res.send。

router.post('/createGroupe/:userId', upload.single('file'), (req, res) => {
    let groupe = req.body
    // req.body containing the groupe title, description
    let userId = req.params.userId
    let groupeId
    groupe['image'] = req.file
    db.query('insert into groupes set ?', groupe, function(err, result){
        if (err) throw err;
        groupeId = result.insertId.toString()
        db.query("insert into groupemembers set ?", [groupeId, userId, 'admin'], function (err, result){
            console.log(groupeId)
            if (err) return err;
            res.send(result.insertId.toString())
        })
    })
})

最新更新