【问题标题】:req. body. name undefined请求。身体。名称未定义
【发布时间】:2021-07-31 10:25:02
【问题描述】:

我在一个简单的博客页面上工作,使用:ejs、js、node、express、body-parser。

当我使用 req.body.name 将输入传递给 cmd 时,就像这里我想传递标题:

const express = require("express");
const app = express();

const bodyParser = require("body-parser");

app.set("view engine", "ejs");
app.use(express.static("public"));

app.get("/compose", (req, res) => {
  res.render("compose", { compose: compose });
});

app.post("/compose", (req, res) => {
  console.log(req.body.title); //input name
});

const port = process.env.PORT;

app.listen(port || 3000, () => {
  console.log("ss");
});

我在命令行中收到错误,指出它未定义,但是当我尝试使用 req.body 而不指定名称时,它可以工作并在命令行中显示输入内容,如下所示:

{ 'title ': 'day1', 'posts ': 'hello' }
{ 'title ': 'day2', 'posts ': 'hey' }
 

我需要指定我需要的输入,这是我在 compose.ej 页面中的输入:

<form class="row g-3" action="/compose" method="post">
  <label class="form-label"> Title</label>
  <input class="form-control" name="title " type="text" />
  <label class="form-label"> Post</label>
  <textarea class="form-control" name="posts" cols="30" rows="6">
    ...
  </textarea>
</form>;

【问题讨论】:

  • 同样在控制台,有一个错误:加载资源失败:net::ERR_NAME_NOT_RESOLVED

标签: javascript node.js express body-parser


【解决方案1】:

这是title 不是title req.body['title '] 或者更正表格name='title',末尾不带空格。

【讨论】:

  • 我删除它但仍然没有任何变化):
【解决方案2】:

您只需在app.use(express.static("public")); 之后添加此行app.use(express.json()); 它将使用 JSON 解析传入的请求

【讨论】:

    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 2021-09-10
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多