Express - отправка в тестовый массив по запросу - PullRequest
0 голосов
/ 10 декабря 2018

Я создал CRUD-операции в Express, и я хочу проверить это на простом массиве в том же файле.Моя проблема в том, что все работает, но запрос на удаление или публикацию не обновляет элементы этого массива.Что я делаю не так ?? *

const express = require("express");
const app = express();
const bodyParser = require("body-parser");
const cors = require("cors");
app.use(cors());

app.use(express.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
let cats = [
  {
    id: 1,
    title: "Filemon",
    color: "black"
  },
  {
    id: 2,
    title: "Burys",
    color: "fire"
  },
  {
    id: 3,
    title: "Mysia",
    color: "Grey"
  },
  {
    id: 4,
    title: "Niunia",
    color: "Black - grey"
  }
];
app.get("/api/cats", (req, res) => {
  res.send(cats);
});
app.get("/api/cats/:id", (req, res) => {
  res.send(cats.find(t => t.id === parseInt(req.params.id)));
});

app.post("/api/cats", (req, res) => {
  let cat = {
    id: cats[cats.length - 1].id + 1,
    title: req.body.title
  };
  cats.push(req.body);
  res.send(cat);
});

Я хочу добавить кошку с динамическим идентификатором в зависимости от идентификатора последней кошки.Когда я добавляю одного кота, его идентификатор равен 5 , но когда я добавляю следующий, его идентификатор равен undefined , потому что мой массив не обновляется.Как это исправить?

1 Ответ

0 голосов
/ 10 декабря 2018
app.post("/api/cats", (req, res) => {
  let cat = {
    id: cats[cats.length - 1].id + 1,
    title: req.body.title
  };
  cats.push(req.body);
  res.send(cat);
});

cats.push(req.body); должен прочитать cats.push(cat); вам нужно вставить новый объект в массив ваших кошек.Однако это не является постоянным, и каждый раз, когда вы перезапускаете сервер, данные будут возвращаться к тому, что было указано в первоначальном объявлении кошек.Для постоянных данных вам необходимо хранить эту информацию в БД.

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