node.js - 为什么会收到:处理请求时出错。在使用适配器之前不要注册任何解析器
问题描述
我正在使用 nodejs + express + express 适配器创建一项技能。我想添加一个中间件来拦截请求并检查请求正文以进行一些验证,但我收到此错误:
Error in processing request. Do not register any parsers before using the adapter
这是我的 index.ts 代码:
const app: express.Application = express()
// Skill entry point
const skill = application.getSkillBuilder.createSkillForWebService()
const adapter = new ExpressAdapter(skill, config.verifySignature, config.verifyTimestamp)
app.use(bodyParser.json())
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
app.use((req: any, res: any, next: () => void) => {
console.log(req)
})
app.post("/", adapter.getRequestHandlers())
const listener = app.listen(PORT, function () {
const { address, port } = listener.address() as AddressInfo
logger.debug("%s listening to %s%s", app.name, address, port)
})
所以我打印了正文,但我得到了错误:处理请求时出错。在使用适配器之前不要注册任何解析器
但是,如果我删除该行:app.use(bodyParser.json()) 该技能有效,但body.req打印 undefined in:
app.use((req: any, res: any, next: () => void) => {
console.log(req)
})
关于如何处理这个问题的任何提示?
解决方案
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
将此中间件放在app.js
您的路线上方,希望它对您有用......
推荐阅读
- python-3.x - Odoo:在创建时在另一个模型的 many2one 字段中保存当前 ID
- angular - 无法解析Angular中类的所有参数
- uwp - UWP 中的图像下降被相关面板包围
- firebase - 旧版 GCE 和 GKE 元数据服务器端点和 Firebase 函数
- python - 如何将凌乱的 csv 文件清理并构建成 pandas 数据框
- javascript - 如何使用户上传的图片自动调整到我的 PHP 网站上的特定宽度和高度而不破坏尺寸?
- c# - smtp.gmail.com - 无法从网站工作 - Hostgator 服务器
- kentico - Kentico 11 - 管理员门户样式损坏
- javascript - 如何在javascript中更改数组的数据?
- microsoft-graph-api - Microsoft Graph:可能的 modifiedProperty 值列表