Javascript 如何使用node js将对象数组插入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

我不熟悉nodejs。我很困惑如何使用nodejs将对象数组插入mysql

我的代码

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()很好,你找到了它,我很高兴能帮到你!