Express POST请求正文未定义



我一直在对一个非常简单的应用程序进行故障排除,无法评估POST的请求主体为何未定义。我使用了express.json((和body解析器,并将请求的ContentType更改为不同的格式,但没有得到任何回复。

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

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不是数字,因此它应该具有"0"成为";123-456";。由于123-456类型为null,因此该参数未定义。服务器上需要将stiringinized数字解析为整数。

已更新

回调函数中的响应参数应正确使用。回调函数末尾的response.json应编辑为res.json,作为回调函数定义的(res, req)

最新更新