首页 > 解决方案 > HTTP 从 api 获取请求并将结果加载到 Mysql

问题描述

我正在发出一个 http GET 请求,并希望将 API 的结果加载到 Mysql db。代码如下。我的 Db 连接正常,我没有收到任何错误。我只是没有将任何结果加载到数据库中。我错过了什么?

var request = require('request');
var mysql = require ('mysql');
var express = require ('express')
let config = require ('./config.js')
let connection = mysql.createConnection(config);
var app = express ();
var bodyParser = require('body-parser')
require('dotenv').config()

// start api operation from  db
var options = {
  'method': 'GET',
  'url': 'https://......,
  'headers': {
    'Cookie': ''
};
request(options, function(error, response) {
  if (error) throw new Error(error);
  console.log('getting the goods');
});
// end api operation

//start body-parser configuration
app.use(bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
  extended: true
}));
//end body-parser configuration

//create app server
var server = app.listen(3000,  "127.0.0.1", function () {

  var host = server.address().address
  var port = server.address().port

  console.log("i'm getting your data at http://%s:%s", host, port)

});
 // get data from customer api...
 var sql = `INSERT INTO dbname 
            (id, email, created_at, updated_at, first_name, last_name)
            VALUES ( '"+rec.body.id+"', '"+email+"', '"+created_at+"', '"+updated_at+"', '"+last_name+"', '"+first_name+"')`;
 var dbname = ['"id+"', '"+email+"', '"+created_at+"', '"+updated_at+"', '"+last_name+"', '"+first_name+"']

    console.log ("working")
   connection.query(sql, [dbname], (err, results, fields) => {
   if (err) {
  return console.error(err.message);
}
// get insrerted rows
   console.log('Row inserted:' + results.affectedRows);
});

 // close the database connection
  connection.end();
  console.log("disconnected")

标签: mysqlnode.jsapihttps

解决方案


推荐阅读