node - koa 获取 Content-Type: text/plain 的数据
2023-12-25 23:34:28
1,Content-Type
Content-Type HTTP 标头用于设置资源的类型,常用的有3个:
- application/json
- application/x-www-form-urlencoded,form 表单提交的格式。
- multipart/form-data,用于上传,
- text/plain
2,koa 获取请求的数据
一般情况下,都会使用 koa-bodyparser 来解析 post 请求的数据:
const Koa = require("koa");
const Router = require("koa-router");
const { bodyParser } = require("@koa/bodyparser");
const app = new Koa();
const router = new Router();
router.post("/api/login", (ctx) => {
console.log(ctx.request.body);
const { name, pwd } = ctx.request.body;
if (name === "下雪天的夏风" && pwd === "123") {
ctx.body = "登录成功";
} else {
ctx.body = {
code: 500,
msg: "用户名或密码错误",
};
}
});
app.use(bodyParser()).use(router.routes());
app.listen(3001);
默认情况下,koa-bodyparser 会解析 application/json
和 application/x-www-form-urlencoded
这2种格式。这是因为配置项 enableTypes 默认为:['json', 'form']
。
所以修改该配置项即可:
app
.use(
bodyParser({
enableTypes: ["json", "form", "text"],
})
)
.use(router.routes());
app.listen(3001);
注意:
- 如果请求头中
Content-Type: text/plain
,那发送的数据就是 String 类型,通过ctx.request.body
得到的也是 String 类型。 use(bodyParser())
需要放到use(router.routes())
之前才会生效。
以上。
文章来源:https://blog.csdn.net/qq_40147756/article/details/135177498
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!