ax ios запрос к node.js серверу, не возвращающему данные - PullRequest
0 голосов
/ 14 марта 2020

Редактировать: Просто опечатка, которую я пропустил. Приношу извинения. Спасибо, Александр

Я не получаю данные ответа в моем клиенте. Однако, когда я использую почтальон, я получаю данные, которые мне нужны. На консоли я получаю следующую ошибку. Любая идея, почему я получаю эту проблему?

Error: Request failed with status code 404
    at createError (createError.js:16)
    at settle (settle.js:17)
    at XMLHttpRequest.handleLoad (xhr.js:61) "error"

На стороне сервера

const express = require("express");
const genreData = require("../data/genreData.json")
const fs = require ('fs')
const router = express.Router();

router.get("/", (_, res) => {
    res.json(genreData);
  });

router.get("/:id", (req, res) => {
    res.json(genreData.find(user => user.id == req.params.id))
})
 module.exports = router;

На стороне клиента

import React, { Component } from 'react'
import axios from 'axios'

export class Result extends Component {
    constructor (props) {
        super (props) 
            this.state = {
                user: {}
            }
    }
    componentDidMount () {
        axios.get(`http:/localhost:8001/genre/${this.props.match.params.id}`)
        .then(res => 
            this.setState({user: res.data}))
        .catch(error => {
            console.log(error, "error")
        })
    }
    render() {
        console.log(this.state.user)
        return (
            <div>
                <p>{this.state.user.id}</p>
            </div>
        )
    }
}

export default Result

Почтальон получает запрос на http://localhost: 8001 / жанр / 52163492-5e66-4bbf-a3d c -2b8120e3afe8

{
    "id": "52163492-5e66-4bbf-a3dc-2b8120e3afe8",
    "action": 3,
    "anime": 4,
    "children": 5,
    "comedy": 2,
    "documentary": 4,
    "drama": 5,
    "horror": 5,
    "musical": 5,
    "scifi": 5,
    "thriller": 5
}

Ответы [ 2 ]

0 голосов
/ 14 марта 2020

Это тот же код, который вы используете? Я думаю, что у вас есть ошибка опечатки

ax ios .get (http:/localhost:8001/genre/${this.props.match.params.id})

Пожалуйста, добавьте // после http.

0 голосов
/ 14 марта 2020

добавьте console.log(this.props.match.params.id) в componentDidMount (), чтобы узнать, правильный ли у вас идентификатор Id

...