Не могу вставить все данные в таблицы MySQL - PullRequest
0 голосов
/ 29 ноября 2018

Я работаю над проектом, цель которого состоит в том, чтобы проанализировать файл JSON из subreddit и поместить информацию из этого файла в таблицы в базе данных MySQL.Я создаю REST API, используя для этого NodeJS и сервер Express.У меня есть две таблицы: пользователи и сообщения, и я могу получить только 3 из имен пользователей в таблицах, но нет информации о сообщениях и пользователей после 3. Я отлаживал в течение нескольких часов и полностью потерян.Мне не нужно, чтобы кто-то выполнил для меня это задание, но мне бы хотелось посоветовать или поработать над решением этой проблемы.

//jshint esversion: 6
let mysql = require("mysql2");
let dbInfo = require("./dbInfo.js");
let express = require("express");
let bodyParser = require("body-parser");

let app = express();

// Add static route for non-Node.js pages
app.use(express.static("public"));

// Configure body parser for handling post operations
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());

// Add reddit
app.post("/reddit-import", function(req, res) {
  console.log("Route /reddit-import POST");
  let x = req.body;
  console.log(x);
  for (let i = 0; i < x.data.children.length; i++) {
    let users_data = {
      username: x.data.children[i].data.author
    };
    console.log(x.data.children[i].data.author);
    let post_data = {
      author: x.data.children[i].data.author,
      created_utc: x.data.children[i].data.created.utc,
      score: x.data.children[i].data.score,
      title: x.data.children[i].data.title,
      url: x.data.children[i].data.url,
      num_comments: x.data.children[i].data.num_comments,
      num_crossposts: x.data.children[i].data.num_crossposts,
      permalink: x.data.children[i].data.permalink
    };
    connection.query("INSERT INTO USERS SET ?", users_data, function(errQuery, result) {
      if (errQuery) {
        console.log(errQuery);
        res.json({status: "Error", err: errQuery});
      } else {
        console.log("Insert ID: ", result.insertId);
        res.json({status: result.insertId, err: ""});
      }
    });
  }
});

// Create database connection
console.log("Creating connection...\n");
let connection = mysql.createConnection({host: dbInfo.dbHost, port: dbInfo.dbPort, user: dbInfo.dbUser, password: dbInfo.dbPassword, database: dbInfo.dbDatabase});
// Connect to database
connection.connect(function(err) {
  console.log("Connecting to database...\n");

  // Handle any errors
  if (err) {
    console.log(err);
    console.log("Exiting application...\n");
  } else {
    console.log("Connected to database...\n");
    // Listen for connections
    // Note: Will terminate with an error if database connection
    // is closed
    const ip = "localhost";
    const port = 8080;
    app.listen(port, ip, function() {
      try {
        console.log("Reddit-import server app listening on port " + port);
      } catch (err) {
        console.log(err);
      }
    });
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...