Когда I POST
с Content_Type
установленным в raw / JSON, ответ не является нулевым. Но когда я пытаюсь POST
данные с Content_Type
, установленным в form-data, ответ возвращается как нулевой. Как я могу решить эту проблему?
Скриншот почтальона с FormData
Но когда я пытаюсь использовать необработанные данные / JSON, все нормально:
Скриншот почтальона с JSON Данные
Для необработанных данных мой тип контента:
multipart/form-data; boundary=<calculated when request is sent>
и мои настройки cors:
app.use((req, res, next) => {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
if (req.method === "OPTIONS") {
res.header("Access-Control-Allow-Methods", "PUT, POST, PATCH, DELETE, GET");
return res.status(200).json({});
}
next();
});
и мой почтовый роутер вот так:
router.post("/", upload.single("productImage"), (req, res, next) => {
console.log(req.file);
Category.findById(req.body.categoryID)
.then((category) => {
if (!category) {
return res.status(404).json({
message: "Category not found",
category: category,
});
}
//
const product = new Product({
_id: new mongoose.Types.ObjectId(),
name: req.body.name,
price: req.body.price,
quantity: req.body.quantity,
category: req.body.categoryID,
});
return product.save();
})
.then((result) => {
console.log(result);
res.status(201).json({
message: "Object created succesfully",
product: {
id: result._id,
name: result.name,
price: result.price,
quantity: result.quantity,
category: result.category,
},
});
})
.catch((err) => {
console.log(err), res.status(500).json({ error: err });
});
});
Ошибка:
UnhandledPromiseRejectionWarning: Error
[ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the
client
Как мне это решить?