我只想用expressjs更新cassandra中的一条记录

我只想用expressjs更新cassandra中的一条记录,express,cassandra,Express,Cassandra,当im使用insert查询进行更新时,它工作正常,但当im使用update进行相同的更新时,它生成错误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=?,firstna

当im使用insert查询进行更新时,它工作正常,但当im使用update进行相同的更新时,它生成错误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);
    }
});
});

更新行时,需要指定主键的所有组件-在您的情况下,这是
id
&
email
,但您只指定
id

发件人:

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


什么是表模式?错误消息中有什么?id | email | firstname | lastname这是来自HTTP框架的消息,而不是来自Cassandra。只需将错误消息打印到控制台。。。另外,关于模式-显示带有主键的CQL定义,等等。当我使用insert进行更新时,execlty我说的是,它不适用于更新查询。当我对更新记录使用插入查询时,不会发生此错误。我可以这样写:--var query='update stu SET email=?,firstname=?,lastname=?其中id=?&&电子邮件=?'<代码>变量查询='UPDATE stu SET email=?,firstname=?,lastname=?其中id=?电子邮件=?'