Sql 如何从外部api获取数据并将其存储在本地数据库中?(javascript)
我想从网站的端点获取JSON,一旦获取数据,它就应该同时保存到本地数据库中。我正在使用postgresql、node.js和express.js 编辑此文件以使其更详细,因为它已被搁置,但不确定除此之外还能说些什么。我正在进行ajax调用以从网站获取数据,并希望将该数据保存到postgres上的本地数据库中。我不想将其转换为CSV或保存json文件,然后导入Sql 如何从外部api获取数据并将其存储在本地数据库中?(javascript),sql,node.js,postgresql,api,express,Sql,Node.js,Postgresql,Api,Express,我想从网站的端点获取JSON,一旦获取数据,它就应该同时保存到本地数据库中。我正在使用postgresql、node.js和express.js 编辑此文件以使其更详细,因为它已被搁置,但不确定除此之外还能说些什么。我正在进行ajax调用以从网站获取数据,并希望将该数据保存到postgres上的本地数据库中。我不想将其转换为CSV或保存json文件,然后导入 我对不同的解决方案持开放态度。lol.类似的解决方案无法测试: 我在这里使用一个假的在线API JSONPlaceholder来模拟用例
我对不同的解决方案持开放态度。lol.类似的解决方案无法测试: 我在这里使用一个假的在线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});
})
}
}
);
});
非常感谢。此答案中的所有内容都是正确的,但pg connect现在已被弃用!所以用户应该使用pg池!