Ошибка: невозможно выполнить POST / api / success - PullRequest
0 голосов
/ 12 июля 2020

Я пытаюсь отправить запрос POST, но похоже, что маршрут не работает из-за ошибки. Однако я получаю значение req.body.entries, зарегистрированное в моей консоли, поэтому оно должно работать. Когда я отправляю запрос GET, браузер садится и загружается. То же самое происходит в Postman. Я пытаюсь понять, почему я получаю ошибку в запросе POST, а запрос GET находится. Заранее благодарим.

index. js

const successRoute = require("./routes/success");
app.use("/api/success", successRoute);

успех. js

router.get(
  "/",
  basicAuth({
    users: { username: "password" },
  }),
  async function (req, res) {
    try {
      const entry = await Entry.find({});
      res.sendStatus(entry);
    } catch (err) {
      res.sendStatus({ msg: "oops something went wrong" });
    }
  }
);

router.post("/", async (req, res, next) => {
  try {
    //console.log(req.body);
    const { store, entries } = req.body;
    Entry.findOneAndUpdate(
      { _id: store },
      { $set: { entries: +req.body.entries } },
      { new: true },
      (err, doc) => {
        if (err) {
          console.log(err);
        }

        console.log(req.body.entries);
        next();
      }
    );
  } catch (err) {
    const entry = new Entry({
      _id: store,
      entries: req.body.entries,
    });

    await entry.save();
    res.sendStatus(200);
    next();
  }
});

1 Ответ

0 голосов
/ 12 июля 2020

Я думаю, что проблема в вашем router.post(), вы не отправляете никакого ответа, вы только звоните next(). Я не вижу следующего маршрута для запроса.

Я бы порекомендовал что-то вроде этого:

router.post("/", async (req, res, next) => {
  try {
    //console.log(req.body);
    const { store, entries } = req.body;
    Entry.findOneAndUpdate(
      { _id: store },
      { $set: { entries: +req.body.entries } },
      { new: true },
      (err, doc) => {
        // throw the error and catch later
        if (err)
          throw err;

        console.log(req.body.entries);

        // send response instead of calling next()
        res.sendStatus(200);
      }
    );
  } catch (err) {
    const entry = new Entry({
      _id: store,
      entries: req.body.entries,
    });

    await entry.save();

    // send response 
    res.sendStatus(200);
    // next(); // don't call next unless next route defined 
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...