javascript - req.body 在发布时返回空

标签 javascript express pug

我对 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}`);
});

表单.pug

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

    input(type="submit")

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

最佳答案

您对 id 和 name 标签感到困惑。name 属性用于引用 JavaScript 中的元素,或者在提交表单后引用表单数据,而这正是您在 html 表单中缺少的内容。因此,只需添加一个名称属性即可。

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

    input(type="submit")

关于javascript - req.body 在发布时返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58528994/

相关文章:

javascript - gapi.client.gmail.users.labels.create 给出 invalidArgument 错误

node.js - KrakenJS Controller 路由

css - 尝试将 .css 链接到 .ejs 文件时出现错误

javascript - 使用 Express 实现 React

node.js - 在 jade 中动态创建表

javascript - 我如何创建 javascript 正则表达式来匹配 {{match}}

javascript - 如何在选择任何下拉值时使用 jquery 交换 HTML 中的两个 <div> 位置?

javascript - setTimeout 在更改 DOM 之前不等待

javascript - Express:一条路由的基本认证

javascript - Nodejs 哈巴狗扩展