node.js - 如何在 Strapi 控制器中获取原始请求正文
问题描述
在 Strapi 控制器中获取请求正文时遇到问题。我正在尝试在用户发出 POST 请求后发送电子邮件(我使用的提供商是 SendGrid)。试图使电子邮件动态化。
发布请求正文:
{
name:"testname",
email:"test@test.com",
type: "normal"
}
我在 \config\routes.json 中有一条路线
{
"method": "POST",
"path": "/brochure",
"handler": "brochure.index",
"config": {
"policies": []
}
}
在 \controllers\brochure.js
const unparsed = require("koa-body/unparsed.js");
module.exports = {
index: async (ctx) => {
const unparsedBody = ctx.request.body[unparsed];
console.log(unparsedBody); // undefined
await strapi.plugins["email"].services.email.send({
to: unparsedBody.email,
from: "test@asd.com",
subject: "testing Subject",
text: `Heloooo ${unparsedBody.name}`,
});
ctx.send("Email Sent");
},
};
在 \config\middleware.js 我有:
module.exports = {
settings: {
cors: {
enabled: true,
},
parser: {
enabled: true,
multipart: true,
includeUnparsed: true,
},
},
};
奇怪的是,当我登录ctx.request.body
终端日志时,我可以看到带有name、email和type的 POST 对象是可见的,但是在登录时,例如,ctx.request.body.name
它是未定义的。
解决方案
推荐阅读
- r - Rpubs 在 Rstudio 中正确呈现的脚本中上传错误
- database - 存储配置
- python - 在使用批量 api simple_salesforce Python 获取数据时在 sql 查询中传递日期时间
- c# - 如何在从 VB 转换的 c# 中创建一个锯齿状的 windows 窗体对象数组
- python - 为什么 IEX Finance 无法加载/工作且无法识别模块?
- ios - 与平移手势闪烁视图相关的问题
- php - 未找到 Laravel Eloquent 过滤器
- oracle - 将 Oracle 数据库从 Amazon RDS 复制到本地 Oracle 开发人员版数据库
- database - Flutter Firebase 数据库“在 null 上调用了方法‘forEach’。”
- java - Netbeans 11.3 IDE 中的 Junit 测试失败“找不到或加载主类”