我想从网站的端点获取JSON,一旦获取了数据,它应该同时保存到我的本地数据库中。我正在使用postgresql、node.js和express.js
编辑它使它更详细,因为它被搁置,但不确定还能说什么,除了我正在进行ajax调用从网站获取数据,我想将这些数据保存到我在postgres上的本地数据库中。我不想将其转换为CSV或保存json文件然后导入。
我对不同的解决方案持开放态度笑。
发布于 2018-06-23 04:25:14
像这样的东西可以工作(不是testet):我在这里使用一个假的在线应用程序接口(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});
})
}
}
);
});
https://stackoverflow.com/questions/50993390
复制相似问题