从 Node.js 将 Json 存储到 MySQL 数据库中

Posted

技术标签:

【中文标题】从 Node.js 将 Json 存储到 MySQL 数据库中【英文标题】:Storing Json into MySQL database from Node.js 【发布时间】:2018-02-16 19:33:43 【问题描述】:

我知道这个问题已经被问过无数次了,但是经过猛烈的搜索,我似乎找不到我想要的答案。我有一个 *.js 格式的脚本,它创建一个 json 数据数组,然后将其存储在一个 json 文件中。

数组设置为:

var sessionState = 
    currentWalletNdx: 0,
    genesisBlockId: 0,
    genesisBaseTarget: 0,
    genesisBlockTimestamp: 0,
    current: 
        blockHeight: 0,
        baseTarget: 0,
        startTime: 0,
        totalShare: 0,
        submitters: 0,
        bestDeadline: 0,
        totalPayments: 0,
        netDiff: 0
    ,
    prevBlocks: []
;

要将数据存储在 json 文件中,函数是:

saveSession: function () 
    var jsonData = JSON.stringify(sessionState, null, 2);
    fs.writeFileSync('pool-session.json', jsonData);
,

我的问题是,我如何将它写在这个 js 文件中,以使用 json 类型将保存的 json 数组存储在 mysql 表中,以便稍后使用 php 和 mysql 查看数据?

【问题讨论】:

我认为你在使用 nodejs,对吗? 是的,我是。我知道如何在节点 js 中建立与 mysql 数据库的连接,但不确定如何处理数据并插入它 【参考方案1】:

这样的事情应该可以工作:

var mysql = require('mysql');
var database = mysql.createConnection(
  host: 'host',
  user: 'user',
  password: 'password',
  database: 'database'
);
database.connect(function(connectionError)
  if(connectionError)
    throw connectionError;
  
  var sql = "INSERT INTO table(column) VALUES ('" + jsonData + "')";
  database.query(sql, function(queryError, queryResult)
    if(queryError)
      throw queryError;
    
  );
);

table 更改为表的名称,将column 更改为要在其中插入 JSON 的列的名称。当然还有数据库连接信息

【讨论】:

这不是很容易受到 SQL 注入的攻击吗? 是的,但我认为存储数字并在另一个环境中访问它们会很快。不过我可能是错的,所以我赞成你的评论,以防其他人来找这个

以上是关于从 Node.js 将 Json 存储到 MySQL 数据库中的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Node.js 将 JSON 数据从 Node.js 发送和获取到 HTML

在 Node.js/Express.js 中,如何将 JSON 对象从服务器传输到客户端?

将嵌套的 JSON 从 PostgreSQL 的多对多连接表返回到 node.js

Node JS:从 JSON 到 CSV 的转换

从 node.js 将图像上传到 s3 存储桶

从 react js / node js 将文件对象上传到天蓝色存储