Sql 如何从外部api获取数据并将其存储在本地数据库中?(javascript)

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来模拟用例

我想从网站的端点获取JSON,一旦获取数据,它就应该同时保存到本地数据库中。我正在使用postgresql、node.js和express.js

编辑此文件以使其更详细,因为它已被搁置,但不确定除此之外还能说些什么。我正在进行ajax调用以从网站获取数据,并希望将该数据保存到postgres上的本地数据库中。我不想将其转换为CSV或保存json文件,然后导入


我对不同的解决方案持开放态度。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池!