如何使用节点js将对象数组插入到mysql中?

时间:2017-04-10 17:04:09

标签: javascript mysql node.js

我是节点js的新手。我很困惑如何使用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)
                })
        })

    }

但是上面代码插入像这样的数据[对象]我不知道如何插入。

1 个答案:

答案 0 :(得分:1)

在您的示例中,您正在使用新的ES6字符串模板,在内部将在您的对象上调用toString方法,因此您应检查此部分代码的变量值

`${username}`,`${postTitle}`,`${postCardArray}`,`${postedDate}`,0,`${coords}`

普通对象的基本toString方法将返回字符串"[object Object"]而不是键值对。 您还可以查看JSON.stringify方法,该方法将创建对象的JSON字符串

我建议您使用ORM来构建有效的查询,例如SequelizeBookshelfKnexnode-orm2