Я не могу показать данные из локального API - PullRequest
0 голосов
/ 18 февраля 2020

Мне нужно преобразовать проект PHP в NodeJS, и у меня уже есть API, выполненный без ошибок. Проблема в том, что когда я хочу получить эти данные из внешнего интерфейса, он возвращает мне не более 404 ошибок. Когда я копирую и вставляю код в консоль браузера, он работает нормально.

Сервер. js

const express = require("express");
const app = express();
const { Sequelize } = require('sequelize');
const path = require('path');


app.use(express.json());

// Conexion
const sequelize = new Sequelize('interaccion', 'carlos', 'CARLOSpsp1', {
    host: 'localhost',
    dialect: 'mysql'
});


app.get('/', (req,res) => {
    res.sendFile(path.join(`${__dirname}/client/index.html`));
});

app.get('/ejes', async (req, res) => {
    try {
        await sequelize.authenticate();
        console.log('Conexion exitosa');
        const [result, metadata] = await sequelize.query("SELECT * FROM ejes");
        return res.json(result);
    } catch (error) {
        console.error('Hubo un error: ', error);
    }
});


const puerto = process.env.PORT || 3000;

app.listen(puerto,() => console.log(`Servidor en el puerto: ${puerto}`));

index. html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Hola mundo desde index</h1>

    <div id="container" class="container">

    </div>

    <script src="main.js"></script>
</body>
</html>

main. js

let container = document.getElementById("id");
let div = document.createElement("div");

const fetchData = async () => {
    try{
        const res = await fetch("http://localhost:3000/ejes");
        const roles = await res.json();
        console.log(roles);
        roles.forEach(rol => {
            console.log(rol);
        });
    }catch(e){
        console.log("Error", e);
    }
}


window.onload = fetchData;

Ответ от маршрута / ejes enter image description here

консольные выходы enter image description here

Ответы [ 2 ]

1 голос
/ 18 февраля 2020

Отображается ошибка 404 для основного. js.

Ваш сервер имеет:

  • app.get('/', (req,res) => {
  • app.get('/ejes', async (req, res) => {

… нет маршрута для main.js, так почему вы ожидаете, что он выдаст что-то, кроме ошибки 404 Not Found?

Документация express объясняет, как обслуживать данные c files , или вы можете использовать тот же шаблон, что и ваш маршрут /.

0 голосов
/ 18 февраля 2020

Проблема в том, что вы не указали клиентские файлы c. Файл stati c содержит все ваши javascript, css, изображения и другие ресурсы stati c.

настроить папку ресурса stati c, из которой клиент может запросить ресурс, иначе express попытается найти указанный маршрут c. (которого у вас нет)

Stati c конфигурация ресурса

app.use(express.static("client"));
...