繁体   English   中英

Express POST 请求正文未定义

[英]Express POST request body is undefined

我一直在对一个非常简单的应用程序进行故障排除,但无法评估为什么 POST 的请求正文未定义。 我使用了 express.json() 和 body-parser 并将请求的 Content-Type 更改为不同的格式,但没有得到任何回报。

这是与问题相关的后端代码

const morgan = require("morgan");
const { response } = require("express");
const { format } = require("morgan");
const express = require("express");
const app = express();
const cors = require("cors");

app.use(express.static("build"));
app.use(cors());
app.use(express.json());
app.use(morgan("combined"));

app.post("/api/phonebook/", (req, res) => {
  const body = req.body;
  console.log(req.body);
  console.log(body.content);
  if (!body.name) {
    return res.status(404).json({
      error: "no name",
    });
  }

  const personObj = {
    name: body.name,
    phone: body.phone,
    id: generateId(),
  };

  phonebook = phonebook.concat(personObj);
  response.json(personObj);
});

这是一个示例 POST

POST http://localhost:3000/api/phonebook/
Content-Type: application/json

{
    "name": "Bob",
    "phone": 123-456
}

服务器已启动并正在运行,并且执行 GET 和 DELETE 请求都可以工作。

POST http://localhost:3000/api/phonebook/
Content-Type: application/json

{
    "name": "Bob",
    "phone": 123-456
}

在请求参数正文中, 123-456不是数字,所以它应该有“”为“123-456”。 因为 123-456 类型是 null 所以参数未定义。 在服务器上需要将搅拌后的数字解析为 integer。

更新

回调函数中的响应参数应该正确使用。 回调 function 结束时的response.json应编辑为res.json作为回调 ZC1C425268E (res, req)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM