Я пытаюсь записать объект JSON (или строку, неуверенный) в мою базу данных mysql, используя node.js.Сначала я получил JSON через xml-URL, используя xml2js.Я могу записать результат json-строки в мою консоль через JSON.stringify, но я не уверен, что делать дальше.
Вот URL, из которого я взял xml: https://water.weather.gov/ahps2/hydrograph_to_xml.php?gage=deld1&output=xml
Я хотел бы записать каждый экземпляр из строки JSON в строку со столбцами в качестве имени данных.Это выглядело бы примерно так:
Вот мой код в index.js, который я прописал с помощью узла index.js на консоли:
var parseString = require('xml2js').parseString;
var http = require('http');
var https = require('https');
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "password",
database: "mydb"
});
function xmlToJson(url, callback) {
var req = https.get(url, function(res) {
var xml = '';
res.on('data', function(chunk) {
xml += chunk;
});
res.on('error', function(e) {
callback(e, null);
});
res.on('timeout', function(e) {
callback(e, null);
});
res.on('end', function() {
parseString(xml, function(err, result) {
callback(null, result);
});
});
});
}
var url = "https://water.weather.gov/ahps2/hydrograph_to_xml.php?gage=deld1&output=xml"
xmlToJson(url, function(err, data) {
if (err) {
return console.err(err);
}
strungout = JSON.stringify(data, null, 1);
console.log(strungout);
//strungout contains my json string
})
con.connect(function(err) {
if (err) throw err;
//below is where I might make an insert statement to insert my values into a mysql table
var sql = someinsertstatement
con.query(sql, function (err, result) {
if (err) throw err;
console.log("records inserted");
res.end();
});
});
Как уже упоминалось, когда я запускаю приведенный выше код в моей консоли, консоль возвращает JSON, хотя я не уверен, как присвоить это переменной, которую я могу затем записать в мою базу данных mysql.
В качестве альтернативы, если есть более простой способ написать XML с веб-сайта непосредственно в мою базу данных MySQL, я, безусловно, был бы признателен за любые указатели.Я чувствую, что это должно быть проще, чем это, но я новичок почти во всем этом.
РЕДАКТИРОВАТЬ: Добавление JSON.Я удалил разрывы строк, чтобы закрепить его.Попытка присвоить результат '4.68' переменной.
data = {"site": {"observed": [{"datum": [{"valid": [{"_": "2019-02-21T19:42:00-00:00","$": {"timezone": "UTC"}}],"primary": [{"_": "4.68","$": {"name": "Stage","units": "ft"}}]}]}]}};
Спасибо.