如何在 Node.js 中使用 JSON 对象更新 mySQL 表?

Posted

技术标签:

【中文标题】如何在 Node.js 中使用 JSON 对象更新 mySQL 表?【英文标题】:How to UPDATE a mySQL table with JSON Object in Node.js? 【发布时间】:2020-03-18 20:32:26 【问题描述】:

我有一个 JSON 对象,想更新一个 mysql 表,但没有列出所有键

使用 INSERT 我会这样做

    var arrayValue = Object.keys(obj).map(function(key) 
      return String("'"+obj[key]+"'");
    );

    var arrayKeys = Object.keys(obj).map(function(key) 
      return String(key);
    );
    var sql = "INSERT INTO `modules` "+ " (" +arrayKeys.join() + ") VALUES ("+arrayValue.join()+");";
    con.query(sql, function (err, result, fields) 
      if (err) throw err;
      return result;
    );

我会用 UPDATE 做同样的事情

我该怎么做?

【问题讨论】:

你能用 JSON 对象更新问题吗?你的更新查询究竟是什么是来自那个 json 对象的 mysql。 【参考方案1】:

这能满足您的需求吗?

const object = 
    id: 1,
    firstName: "John",
    lastName: "Doe"
;

const columns = Object.keys(object);
const values = Object.values(object);

let sql = "INSERT INTO tableName ('" + columns.join("','") +"') VALUES (";

for (let i = 0; i < values.length; i++) 
    sql += "?";
    if (i !== values.length - 1) 
        sql += ",";
    


sql+= ")";

connection.query(sql, values, (error, result, fields) => 
    //do what you must here.
);

更新:

const object = 
    id: 1,
    firstName: "John",
    lastName: "Doe"
;

const columns = Object.keys(object);
const values = Object.values(object);

let sql = "UPDATE tableName SET '" + columns.join("' = ? ,'") +"' = ?";

connection.query(sql, values, (error, result, fields) => 
    //do what you must here.
);

当然,你会在 where 语句中添加什么?

我希望这会有所帮助。

【讨论】:

【参考方案2】:

这里是例子

/ Update an existing user
app.put('/users/:id', (request, response) => 
    const id = request.params.id;

    pool.query('UPDATE users SET ? WHERE id = ?', [request.body, id], (error, result) => 
        if (error) throw error;

        response.send('User updated successfully.');
    );
);

that works for me

【讨论】:

code.tutsplus.com/tutorials/…

以上是关于如何在 Node.js 中使用 JSON 对象更新 mySQL 表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Node.js 中使用流对大型嵌套对象进行 JSON 字符串化?

如何使用node.js将多个json的对象合并到一个json文件中

如何更新json文件中的值并通过node.js保存

如何通过使用 node.js 从实时 json 数据中提取特定字段来创建新的单个 json 对象

Node.js / Express / Mongoose - 如何发送 JSON 以及对象视图?

如何使用 Node js 操作 DOM?