我有一个控制器,它是为了创建一个产品。请求还必须包含图像。因此,我使用Postman表单数据来传递值。但我根本无法得到这些值。请求正文始终未定义。如何克服这一点呢?
的数据
第一个月
import express from "express";
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use("/products", router);
字符串router.js
个
import { Router } from "express";
const router = Router()
productRouter.post("/add", newproduct)
export default router;
型product.controller.js
个
const newproduct = (req, res) => {
try {
console.log('body', req.body)
// just for the sake i am explicitly returning some response
res.status(201).json({ message: "Product created successfully" });
} catch (error) {
res.status(500).json(error)
}
};
型
获取一个空对象,如
的
我使用表单数据选项卡只是因为文件上载。它不包括在 Postman 屏幕截图(未能附加),但这就是为什么我使用表单数据选项卡发送请求。我跟踪了Express + Postman, req.body is empty,Req.body is empty in express even i did everything,Request body is empty when posting form-data .所有这些都主要是告诉让它raw和选择json和实际的解决方案也导致了空对象只有。我做错了什么?
1条答案
按热度按时间cbeh67ev1#
要在Express中使用表单数据处理文件上传,您需要使用额外的中间件来正确解析表单数据。在您的例子中,您可以使用multer中间件。首先在项目中安装multer,然后像这样更新路由器
字符串