Как внедрить Sequalize API в мое приложение React? - PullRequest
0 голосов
/ 12 марта 2020

Я хочу иметь возможность получать записи из моей базы данных MYSQL в мой API, но я не знаю, как его маршрутизировать (нужно ли создавать компонент?). Я не смог найти никаких ресурсов об использовании sequelize с React, поэтому любая помощь будет принята с благодарностью!

var db = require("../models");

module.exports = function(app) {
  app.get("/api/teams", function(req, res) {
    var query = {};
    if (req.query.team_id) {
      query.team_id = req.query.team_id;
    } else if (req.query.team_name) {
      query.team_name = req.query.team_name;
    } else if (req.query.logo_link) {
      query.logo_link = req.query.logo_link;
    }

db.Team.findAll({
  where: query
}).then(function(dbEvent) {
  console.log(dbEvent);
  res.json(dbEvent);
});
  });
};

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Вы создаете API, а затем используете его в своем реактивном приложении. Так как вы включили тег express. Это путь к go.

const express = require('express');
const app = express();
const db = require("../models");

app.get('/api/teams', async (req, res) => {
  const query = {};
    if (req.query.team_id) {
      query.team_id = req.query.team_id;
    } else if (req.query.team_name) {
      query.team_name = req.query.team_name;
    } else if (req.query.logo_link) {
      query.logo_link = req.query.logo_link;
    }

   db.Team.findAll({
     where: query
    }).then(function(dbEvent) {
     console.log(dbEvent);
    res.json(dbEvent);
    });
});

module.exports = app;
0 голосов
/ 12 марта 2020

Sequelize - это серверная библиотека. Он не должен использоваться с React, потому что React является клиентской библиотекой для браузера. Ваш фрагмент кода не дает мне достаточно информации, чтобы дать вам рабочее решение, но я постараюсь помочь дать общий ответ на ваш вопрос:

Ваше приложение React клиентская код который будет выполняться в веб-браузере вместе с html и css. Вот где живет ваш пользовательский интерфейс.

Ваша реализация Sequelize, вероятно, будет частью серверного Node.js приложения. Ваше клиентское приложение будет получать и отправлять запросы на различные маршруты вашего серверного приложения.

MySQL База данных , которую вы настроили, будет быть вызванным вашим серверным приложением. Каждый маршрут на вашем сервере будет запускать отдельный запрос на продолжение в вашей базе данных. Когда запрос выполнен, он передает результат обратно на сервер, который отправляет результат обратно клиенту.


Звучит ваш вопрос, как будто вы путаете клиентский код и серверную часть код. Клиентский код React никогда не обращается к базе данных. Для этого вам нужно создать серверное приложение с API / маршрутами (и Sequelize, если вы хотите его использовать).

Клиент ---- HTTP-запрос ----> Сервер --- -Sql / Sequelize Query ----> База данных

Клиент <---- HTTP Response <---- Сервер <---- результат запроса ---- База данных </p>

I надеюсь, что это поможет

Подробнее: https://en.wikipedia.org/wiki/Client%E2%80%93server_model

...