javascript - 邮递员中的表单数据将空对象发送到 node.js
问题描述
我知道这已被多次询问,但我一直在环顾四周,仍然找不到我的问题的答案。
index.js 文件
const express = require("express");
require("dotenv").config({
path: ".env",
});
const PORT = process.env.PORT || 5000;
const runDatabase = require("./config/database");
const path = require('path')
const app = express()
const cors = require('cors')
app.use(cors())
app.use(express.json())
app.use(express.urlencoded({ extended: true }));
app.use("/uploads", express.static(path.join(__dirname, "uploads")));
// routers
const userRouter = require("./router/usersRouter");
const categoryRouter = require("./router/categoryRouter");
const productRouter = require("./router/productRouter");
app.use("/api", userRouter);
app.use("/api", categoryRouter);
app.use("/api", productRouter);
app.listen(PORT, () => {
runDatabase();
console.log(`The Backend Server is up and running on port ${PORT}`);
});
控制器文件
exports.createCategory = async (req, res) => {
try {
const { title, sort } = req.body;
console.log(req.body); // print empty object
await categoryModel.create({
title,
sort,
});
return res.status(200).send("created");
} catch (err) {
return res.status(400).send(err.message);
}
};
这是我的代码,当以 JSON 原始邮递员发送请求时,我需要一个响应,但是当使用表单数据时,它将返回一个空正文
解决方案
如果您使用该选项"x-www-form-urlencoded"
,我想它会起作用。所以事情是这样的:
当您使用邮递员
"form-data"
时,将考虑multipart/form-data
您需要一个库来解析表单数据,例如 multer。对于
x-www-from-urlencoded
原始数据,您可以使用 express 内置中间件或使用 body-parser 解析数据。
推荐阅读
- vba - Word VBA-组合框文本重置文本输出
- java - MojoFailureException | 找不到符号:com.hazelcast.config.MaxSizeConfig
- javascript - 修改 HTML 中的 value 属性
- ruby-on-rails - 为什么在处理 API 请求时会有 Rails 视图开销?
- spring-boot - 带有 Vue 前端的模块化 SpringBoot 应用程序
- sql - SQL 根据条件合并重叠日期
- r - 启动 R 时出错,R 会话无法启动
- php - PHP GD - 禁用重新缩放为方形纵横比
- android - NativeScript Build - 执行静态绑定生成器时出错:找不到类 android.support.v4.view.ViewPager.OnPageChangeListener
- php - 如果帐单和送货地址不匹配,则将 WooCommerce 订单“暂停”