Возникли проблемы с извлечением данных из моей базы данных и заполнением их (ById) в представлении my Vue (с использованием Ax ios). Backend - это узел / экспресс - PullRequest
1 голос
/ 25 февраля 2020

Я знаю по консоли, что маршрут указывает на правильный номер Id, но он выбрасывает 404, и я не уверен, где происходит плохое соединение.

PrizesById по сути дубликат другого маршрута с данными Prizes. Я не был уверен, что воссоздание двух отдельных мест для извлечения идентичных данных будет способом сделать это, так как я не мог найти способ сделать это для prizes. Оба требуются одинаково.

Это образец моего приза. js (в маршрутах):

  const express = require('express');
  const router = express.Router();

  router.get('/', (req, res) => {
    res.send({
        "prizesbyid": [{
                id: 1,
                name: "Cordoba C5",
                description: "The Cordoba C5 Classical Guitar is perfect for any aspiring classical guitarist or steel-string/electric wizard looking to take a walk on the wild nylon-string side. The solid cedar top produces amazingly rich tone while the wide string placement, easy string tension, and low action make it a breeze to play.",
                image_url: "../assets/c5Cor.jpg",
                quantity: 5
            },
            {
                id: 2,
                name: "Merano MC400 Cello",
                description: "Established in 2000, Merano have made it their mission to create affordable, beautifully crafted instruments. They offer brass, wind and stringed instruments all at reasonable prices. They have a large team of artisans who look over every instrument to ensure it maintains high standards. Many of their instruments are aimed at the beginner market but they also offer some fine examples of professional equipment as well.",
                image_url: "",
                quantity: 3
            },
            {
                id: 3,
                name: "Guarnerius del Gesu",
                description: "A repreduction of the most expensive violin in the world, selling for an estimated $16million. The owner of the original anonymously donated the historic instrument to violinist Anne Akiko Meyers, on loan for the rest of her life.",
                image_url: "",
                quantity: 7
            }
        ]
    })
  })

  module.exports = router;

Мне нужно это через мое приложение. js как это:

const prizesByIdRouter = require('./routes/prizesbyid');
app.use('/prizesbyid', prizesByIdRouter);

А передний конец топор ios Зов:

getPrizeById () {
  axios.get('http://localhost:3000/prizebyid/' + this.prizeId).then(response => {
    this.prize = response.data.prize
  })
}

1 Ответ

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

На самом деле проще, если вы переименуете все в маршрут /prizes. В ваших призах. js маршруты:

const express = require('express');
const router = express.Router();

const prizes = [...];  // Extracted all data outside of the routes

router.get("/:id?", (req, res) => {
    if (req.params.id !== undefined) {
        // Send one by id
        const result = prizes.find(prize => prize.id === +req.params.id);
        res.status(200).send(result);
    } else {
        // Send all
        res.status(200).send(prizes);
    }
});

module.exports = router;

В вашем приложении. js:

const prizesRouter = require('./routes/prizes');
app.use('/prizes', prizesRouter);

Маршрут позволяет указать необязательный параметр ID. Если он пройден, маршрут найдет идентификатор в данных и отправит соответствующий результат. Если идентификатор не передан, маршрут передаст все данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...