Почтальон x-www-form-urlencoded возвращает нулевое значение для запроса POST, даже если поле ввода заполнено - PullRequest
0 голосов
/ 19 декабря 2018

Я использовал необработанный параметр почтальона, и он работал, мое входное значение вернулось, как и ожидалось.Но когда я использую опцию x-form-urlencoded, возвращается «null».Запрос get все работает хорошо.Ниже приведен скриншот сечения почтальона:

Снимок почтальона

Я вручную создал таблицы и строки со следующими сценариями postgres:

CREATE TABLE graduates (id SERIAL PRIMARY KEY, name TEXT);

CREATE TABLE offers (id SERIAL PRIMARY KEY, title TEXT, graduate_id INTEGER REFERENCES graduates (id) ON DELETE CASCADE);

INSERT INTO graduates (name) VALUES ('Elie'), ('Michael'), ('Matt'), ('Joel');

INSERT INTO offers (title, graduate_id) VALUES ('Teacher', 1), ('Super Teacher', 2), ('Mathematician', 3), ('Developer', 4), ('Super Doctor 1', 3), ('Super Doctor 2', 4), ('Super Developer 1', 2);

Фрагмент маршрута моих выпускников для запроса POST выглядит следующим образом:

// This route is mounted on /graduates in app.js

router.post("/", async (req, res, next) => {
    try {
        const result = await db.query(
            "INSERT INTO graduates (name) VALUES ($1) RETURNING *", 
            [req.body.name]
        );
        return res.status(201).send(result.rows[0]);
    } catch(err) {
        return next(err);
    }
});

Я с нетерпением жду ответа.Спасибо.

1 Ответ

0 голосов
/ 19 декабря 2018

Вам нужен парсер, чтобы получить имя из тела запроса.Теперь есть один не построенный с экспрессом.Добавьте эти две строки вверху, и это будет работать:

app.use(express.json())
app.use(express.urlencoded({ extended: false }))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...