nodejs-cassandra不会插入整数
我已经尝试了很多东西来得到这个固定的,但总是似乎导致了一个或另一个错误。
下面是我用来执行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在数组中简单地定义为new Date().getTime()
ive尝试做parseInt(userFolder: new Date().getTime());
但似乎总是导致这个错误
另外,如果您尝试Number(userFolder :new Data().getTime());
它也不起作用,并导致下面的第二个错误;
我尝试的另一件事是简单地inputnewUser.userFolder.valueOf()
这也导致第二个错误。
Invalid STRING constant (1443827057269) for "userfolder" of type int
要么
Unable to make int from '1443827264655'
我有一种感觉,因为这个数字是在这之前造成的。 但我不知道如何删除这个。
我试图直接input数字,而不使用数组,它工作正常,所以variables必须导致这个问题。
我基本上从MySQL迁移到卡桑德拉,并有这个项目的最后期限,所以任何帮助,将不胜感激。
顺便说一下使用datastax驱动程序的节点-JS
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") } });
现在有一些细节:
- 而不是通过连接值创build一个CQLstring,上面的代码创build一个参数化查询
-
查询中的参数是通过
newUser
对象的名称(例如username
)来newUser
。 参数的名称必须与对象中的属性完全相同。有一个选项可以使用
?
而不是位置参数,然后你可以将它们的值传递给一个数组:req.client.execute("INSERT INTO users (id,username,email,password,userFolder) VALUES (now(), ?, ?, ?)", [newUser.username, newUser.password, newUser.userFolder], ...
-
{prepare: true}
告诉客户准备这个语句,如果它多次使用,那么它优化了它的执行和参数的传输
最后但并非最不重要的是,请不要将密码保存清楚。