Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js nodejs cassandra不会插入整数_Node.js_Cassandra_Cassandra Cli - Fatal编程技术网

Node.js nodejs cassandra不会插入整数

Node.js nodejs cassandra不会插入整数,node.js,cassandra,cassandra-cli,Node.js,Cassandra,Cassandra Cli,我尝试了很多方法来修复这个问题,但它似乎总是导致这样或那样的错误 下面是我用来执行INSERT查询的代码 req.client.execute("INSERT INTO users (id,username,email,password,userFolder) VALUES (now(),'"+newUser.username+"','"+newUser.email+"','"+newUser.password+"',"+newUser.userFolder+");",f

我尝试了很多方法来修复这个问题,但它似乎总是导致这样或那样的错误

下面是我用来执行INSERT查询的代码

            req.client.execute("INSERT INTO users (id,username,email,password,userFolder) VALUES (now(),'"+newUser.username+"','"+newUser.email+"','"+newUser.password+"',"+newUser.userFolder+");",function(err,result){
            if(err){
                console.log(err.message)
            }else{
                console.log("New user created")
            }
        });
newUser.userFolder在数组中定义为
newdate().getTime()

我试过做
parseInt(userFolder:newdate().getTime())但它似乎总是导致此错误

如果您尝试
Number(userFolder:newdata().getTime())它也不工作,并导致下面的第二个错误

我尝试的另一件事是简单地键入
newUser.userFolder.valueOf()
,这也会导致第二个错误

Invalid STRING constant (1443827057269) for "userfolder" of type int

我有一种感觉,因为“是”之前的数字是造成这一点的原因。然而,我不知道如何删除这个

我尝试直接键入数字而不使用数组,它工作正常,因此变量一定是导致此问题的原因

我基本上是从MySQL迁移到cassandra,这个项目有一个截止日期,所以任何帮助都将不胜感激

顺便说一下,我正在为node js使用datastax驱动程序

req.client.execute("INSERT INTO users (id,username,email,password,userFolder) VALUES (now(), :username, :email, :userFolder)", 
                   newUser, 
                   {prepare: true }, 
                   function(err,result) {
                       if(err){
                           console.log(err.message)
                       }else{
                           console.log("New user created")
                   }
    });
下面是一些细节:

  • 上面的代码不是通过连接值来创建CQL字符串,而是创建一个参数化查询
  • 查询中的参数按名称(例如,
    username
    )从
    newUser
    对象中检索。参数的名称必须与对象中属性的名称完全相同

    可以选择使用
    代替位置参数,然后可以在数组中传递它们的值:

    req.client.execute("INSERT INTO users (id,username,email,password,userFolder) VALUES (now(), ?, ?, ?)", 
               [newUser.username, newUser.password, newUser.userFolder], ...
    
  • {prepare:true}
    告诉客户机准备此语句,因此如果多次使用,它将优化其执行和参数传输

  • 最后但并非最不重要的一点是,请不要将密码存储在clear中

    req.client.execute("INSERT INTO users (id,username,email,password,userFolder) VALUES (now(), ?, ?, ?)", 
               [newUser.username, newUser.password, newUser.userFolder], ...