req.body возвращает пустое сообщение - PullRequest
0 голосов
/ 23 октября 2019

Я довольно новичок в экспрессе. не знаю, что я сделал не так ... Вот краткий макет моей ситуации.

app.js

const app = express();
const bodyParser = require('body-parser')
const port = 3000;

app.set('view engine', 'pug');
app.use('/static', express.static('./public'));

const urlEncoded = bodyParser.urlencoded({ extended: false });
const jsonParser = bodyParser.json();

app.get('/', (req, res) => {
  res.render('index')
});

app.get('/form', (req, res) => {
  res.render('form');
});

app.post('/', urlEncoded, (req, res) => {
  console.log(req.body);
});

app.listen(port, () => {
  console.log(`This app is listening on localhost:${port}`);
});

form.pug

block content
  form(action="/" method="post")
    label(for="name")
    input(for="name" id="name")

    input(type="submit")

результат вконсоль - пустой объект.

1 Ответ

2 голосов
/ 23 октября 2019

Вы путаете между идентификатором и тегом имени. Атрибут имени используется для ссылки на элементы в JavaScript или для ссылки на данные формы после отправки формы, и это то, что вам не хватает в вашей HTML-форме. Итак, просто добавьте атрибут name.

block content
  form(action="/" method="post")
    label(for="name")
    input(for="name" id="name" name = "name")

    input(type="submit")
...