如何使用NodeJS实时获取API数据并在mysql中插入

时间:2019-02-11 22:12:19

标签: mysql node.js kue

我必须在我的mysql数据库中插入来自许多不同平台的实时数据。我正在使用NodeJS并从API提取数据。

我有一个可以工作的代码,但是由于分页而有局限性,我不希望所有数据,我只想要新数据,例如,每一次脚本运行并从平台获取所有新数据API并将其发送到我的mysql数据库。我当时正在考虑尝试使用Kue保存数据并使用PM2运行脚本,但是我对此并不了解。

   const axios = require("axios");
   const db = require('../dbConnection');


  module.exports = {
    async index(req, res) {
      const {data} = await axios.get(
        "https://url/api/3/contacts?listid=13&limit=100",
        {
          headers: {
            "Api-Token":
              "***"
          }
        }
      );
      const {contacts} = data;

      const dataToDb = contacts.map(user => {
        let {email, created_utc_timestamp} = user;
        return {email,created_utc_timestamp}
    });

      const promises = dataToDb.map(index=>{
        db('wp_activecampaign').insert({ user_email: index.email, user_created: index.created_utc_timestamp }).then(()=>console.log('Novo dado')).catch(err=>console.log(err));})

      await Promise.all(promises);

      return res.status(200).json('sucess!');
    }
  };

我从上面的代码中获得了100行,但是我希望所有这些行都具有新记录,例如每小时260k,或者学习如何使用Kue解决此问题。

0 个答案:

没有答案