You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript调用YouTube API插入MySQL出现空数据该如何解决

问题原因

你插入空数据的核心问题有两个:

  1. 现有代码中YouTube API请求逻辑和MySQL插入逻辑完全分离,拿到的API返回数据没有传递给插入操作
  2. INSERT语句中的kind, etag, id, snippet是未赋值的无效变量,MySQL识别为无有效值,因此插入空记录

修复步骤

  • 第一步:合并API请求和数据库插入逻辑,确保拿到API返回数据后再执行插入操作
  • 第二步:修正插入语句,使用参数化查询传入真实的字段值,同时避免SQL注入风险
  • 第三步:遍历API返回的items数组,逐个提取字段后插入数据库

修复后的完整示例代码

const https = require('https');
const mysql = require('mysql')

// 配置参数
const API = 'AIzaSy************************';
const YOUTUBE_URL = `https://www.googleapis.com/youtube/v3/search/?part=snippet&key=${API}&q=test&maxResults=20`;

// 数据库连接配置
const con =  mysql.createConnection ({
    host: 'sql5.freemysqlhosting.net',
    user: 'sql*******',
    password: '**********Ti',
    database: 'sql******',
    port: '3306'
});

// 先连接数据库,再发起API请求
con.connect(function(err) {
  if (err) throw err;
  console.log("数据库连接成功");

  // 发起YouTube API请求
  https.get(YOUTUBE_URL, res => {
    let rawData = '';
    res.on('data', chunk => {
      rawData += chunk;
    });
    res.on('end', () => {
      const result = JSON.parse(rawData);
      const items = result.items || [];
      
      // 遍历返回结果逐个插入
      items.forEach(item => {
        // 提取对应字段,复杂字段可以转成JSON字符串存储
        const insertData = [
          item.kind,
          item.etag,
          typeof item.id === 'object' ? JSON.stringify(item.id) : item.id,
          JSON.stringify(item.snippet)
        ];
        // 参数化插入语句
        const sql = `INSERT INTO YouTube_API_DB_Conn (kind, etag, id, snippet) VALUES (?, ?, ?, ?)`;
        con.query(sql, insertData, function(err, result) {
          if (err) throw err;
          console.log(`插入成功,记录ID:${result.insertId}`);
        });
      })
    })
  }).on('error', err => {
    console.log('API请求错误:', err.message);
  })
});

额外注意事项

  • 如果你的id和snippet字段是文本类型,直接存JSON字符串即可,如果是结构化字段需要提前拆分snippet里的子字段对应插入
  • 所有插入操作完成后可以手动调用con.end()关闭数据库连接
  • 测试时可以先打印insertData的内容,确认字段取值正确再执行插入

内容的提问来源于stack exchange,提问作者Paolo Pajarillo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:45:02