尝试使用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()

谢谢。

最佳答案

你的答案在下面

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语句的末尾);

link处详细了解有关sql nodejs的信息

关于mysql - 如何在ExpressJS上的mysql中删除行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50849284/

10-14 04:32