我想使用expressjs更新cassandra中的单个记录

时间:2018-06-19 09:46:22

标签: express cassandra

当我使用插入查询进行更新时,它可以正常工作,但是当我使用更新时,它生成错误404.我的代码如下:

router.post('/updateone', function (req, res, next) {

var id = req.body.id;
var fn = req.body.f;
var ln = req.body.l;
var email = req.body.e;

var query = 'UPDATE stu SET email=?,firstname = ?,lastname=?  WHERE id=?';
    //var up = 'insert into stu(id,email,firstname,lastname)values(?,?,?,?)';
client.execute(query, [email,fn,ln,id], function (err, result) {
    if (err) {
        res.status(404).send({msg: err});
    } else {
        res.send(result);
    }
});
});

1 个答案:

答案 0 :(得分:1)

更新行时,需要指定主键的所有组件-在您的情况下为idemail,但您仅指定了{{1} }。

来自documentation

  

WHERE子句指定要更新的行。要指定行, WHERE子句必须为该行的主键的每一列提供一个值。要指定多个行,可以使用IN关键字引入可能值的列表。您只能对主键的最后一列执行此操作。