Javascript 如何使用node js将对象数组插入mysql?
我不熟悉nodejs。我很困惑如何使用nodejs将对象数组插入mysql 我的代码Javascript 如何使用node js将对象数组插入mysql?,javascript,mysql,node.js,Javascript,Mysql,Node.js,我不熟悉nodejs。我很困惑如何使用nodejs将对象数组插入mysql 我的代码 static inserPost(postCardArray,postTitle,postedDate,username,coords){ //postCardArray = [ {hello:'dude'} ] let query = "INSERT INTO ??(??,??,??,??,??,??) VALUES (?,?,?,?,?,?)"; let inse
static inserPost(postCardArray,postTitle,postedDate,username,coords){
//postCardArray = [ {hello:'dude'} ]
let query = "INSERT INTO ??(??,??,??,??,??,??) VALUES (?,?,?,?,?,?)";
let inserts = ["post","post_by_username","title","post_body","posted_date","views","coords",`${username}`,`${postTitle}`,`${postCardArray}`,`${postedDate}`,0,`${coords}`];
query = mysql.format(query,inserts);
pool.getConnection((err,connection) => {
if(err)
throw err
else
connection.query(query,(err,rows) => {
connection.release();
console.log(rows)
})
})
}
但是上面的代码插入的数据类似于我不知道如何插入的[Object]。在您的示例中,您正在使用新的ES6字符串模板,它将在内部调用对象上的
toString
方法,因此您应该检查这部分代码的变量值
`${username}`,`${postTitle}`,`${postCardArray}`,`${postedDate}`,0,`${coords}`
基本上,普通对象的toString
方法将返回字符串“[object object]”
,而不是键值对。
您还可以查看JSON.stringify
方法,该方法将创建对象的JSON字符串
我建议您使用ORM来构建有效的查询,例如,使用或
.(对于精通的人来说,这只是一个搁置的问题……这是在Node,js中准备语句的首选方法吗?)是的,我想是的,在通过
mysql.format(query,inserts)
运行后,query
的价值是什么?它只需打印出完全修改过的mysql query@cale即可_b@Nane-你没领会我的意思。它应该打印出来,你输入了正确的参数吗?它打印什么?使用console.log()
或调试器和check.ORMs可能会在某些困难的查询中失败@Nane你能不能显示你变量的值,因为我们不知道你的值是什么,没有它们就不能提供建议和解决方案。如果你有困难的查询,你可以使用ORM的原始查询,而不是内置方法,例如sequelize提供了很好的API,虽然如果你的应用程序很小,你可以只使用节点mysql而不使用任何ORMAnyways我找到了解决方案我必须解析我的Json数组对象,比如这个Json.Stringify()很好,你找到了它,我很高兴能帮到你!