POST-запрос в Postman не работает при добавлении параметров запроса - PullRequest
0 голосов
/ 04 июня 2019

У меня есть экспресс-маршрут, который отправляет профиль пользователя в базу данных:

router.post(
  "/:account_id",
  [
    auth,
    [
      check("name", "Please enter your name")
        .not()
        .isEmpty(),
      check("orgName", "Please enter your organization name")
        .not()
        .isEmpty()
    ]
  ],
  async (req, res) => {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() });
    }
    try {
      const accountId = req.params.account_id;

      const { name, orgName } = req.body;

      // Check for the existing profile
      let query = await db.query(
        `SELECT 1 FROM profile WHERE profile.account_id='${accountId}'`
      );

      if (query.rowCount !== 0) {
        return res.status(400).send({
          errors: [
            {
              msg: "You have already created your profile"
            }
          ]
        });
      }

      // Insert the profile
      query = await db.query(
        `INSERT INTO profile (
        account_id, profile_name, company_name) VALUES ('${accountId}', '${name}', '${orgName}') returning profile_id, account_id, profile_name, company_name`
      );

      const profile = query.rows[0];

      return res.json(profile);
    } catch (err) {
      console.error(err.message);
      res.status(500).send("Server error");
    }
  }
);

Этот запрос не работает и выдает ошибку CANNOT POST в Почтальоне с кодом HTML.Однако, когда я удаляю параметр :account_id из URL и вручную пишу, т.е. 50, запрос работает.Что не так с параметрами запроса здесь?

Заголовки: x-auth-token: AUTH TOKEN Тип содержимого: application / x-www-form-urlencoded

UPD: Ошибка, которую я получаю: enter image description here

1 Ответ

3 голосов
/ 04 июня 2019

Проблема в том, что ваш бэкэнд-контроллер ожидает параметр account_id в пути , а вы предоставляете его в строке запроса .Чтобы это работало, измените конец URL на api/profile/:account_id в Почтальоне, удалив строку запроса.Также на этой странице показано, как настроить параметры URL на Почтальоне: https://learning.getpostman.com/docs/postman/sending_api_requests/requests/

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