我想从网站的端点获取JSON,并且一旦获取数据,就应该同时将其保存到我的本地数据库中。我正在使用postgresql,node.js和express.js
对其进行编辑以使其更加详细,因为它被搁置了,但是除了我要进行ajax调用以从网站获取数据之外,还不确定要说些什么,我想将该数据保存到本地数据库中我在postgres上。我不想将其转换为CSV或保存json文件然后导入。
我愿意接受其他解决方案。
答案 0 :(得分:1)
类似的事情可能起作用(而不是睾丸): 我在这里使用伪造的在线API(JSONPlaceholder)来模拟用例...
const express = require('express');
const request = require('request');
const pg = require('pg');
const app = express();
const connectionString = 'postgres://username:password@localhost/pg_demo_db' // your connection string
app.get('/getdata/:id', function(req, res) {
if (!req.params.id) {
res.status(500);
res.send({"Error": "No ID"});
}
request.get(
// here I am using JSONPlaceholder API (Fake Online REST API for prototyping)
{ url: "https://jsonplaceholder.typicode.com/posts/" + req.params.id },
function(error, response, body) {
if (!error && response.statusCode == 200) {
// get data from body ... e.g. title
const data = JSON.parse(body);
const title = data.title || '';
// store in Postgresql
pg.connect(connectionString, (err, client, done) => {
done();
// Handle connection errors
if(err) {
console.log(err);
return res.status(500).json({success: false, data: err});
}
// SQL Query > Insert Data
client.query('INSERT INTO titles(id, title) values($1, $2)', [req.params.id, title]);
res.json({title: title});
})
}
}
);
});