如何在expressjs上删除mysql中的行?

wvt8vs2t  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(357)

试图用express删除一行,但它不起作用。
代码

router.get('/hoteles/Eliminar/:idHotel',(req,res) => {
    var idHotel = req.params.idHotel
    console.log(idHotel);
    var sql = 'DELETE FROM hotel WHERE idHotel = ?;';

    conn.query(sql,[idHotel],(err,result,field) => {
        if(err){
            res.send({
                'code' : 400,
                'faild' : 'error ocurred Eliminar'
            });
        }else{
            console.log('deleted ' + result.affectedRows + ' rows');
            res.redirect('/root/hoteles/1');
        }
    });
});

输出

:5
deleted 0 rows

需要注意的是,在其他数据库查询之前,输出是:

(node:10899) [DEP0096] DeprecationWarning: timers.unenroll() is deprecated. Please use clearTimeout instead.

req.params.idhotel返回

:6

所以我使用split()然后使用parseint()
谢谢。

34gzjxbg

34gzjxbg1#

你的答案如下

router.get('/hoteles/Eliminar/:idHotel', (req, res) => {
    var idHotel = [];
    idHotel.push(String(req.params.idHotel));
    console.log(idHotel);
    var sql = 'DELETE FROM hotel WHERE idHotel = ?';

    conn.query(sql, idHotel, (err, result, field) => {
        if (err) {
            res.send({
                'code': 400,
                'faild': 'error ocurred Eliminar'
            });
        } else {
            console.log('deleted ' + result.affectedRows + ' rows');
            res.redirect('/root/hoteles/1');
        }
    });
});

不要在nodejs中使用分号。它默认使用分号(在sql语句的末尾);
有关sql节点的更多信息,请参阅链接

相关问题