【问题标题】:req.body returns empty on postreq.body 在帖子中返回空
【发布时间】:2019-10-24 03:04:02
【问题描述】:

我对 Express 很陌生。不知道我做错了什么... 这是我的情况的快速模型。

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")

控制台中的结果是一个空对象。

【问题讨论】:

    标签: javascript express pug


    【解决方案1】:

    您混淆了 id 和 name 标签。name 属性用于引用 JavaScript 中的元素,或在提交表单后引用表单数据,而这正是您在 html 表单中所缺少的。所以,只需添加一个名称属性。

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

    【讨论】:

    • 谢谢!我怎么会错过呢。
    猜你喜欢
    • 2014-08-23
    • 2014-01-28
    • 2017-08-30
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    相关资源
    最近更新 更多