首页 > 解决方案 > 是否可以在strapi 上的定制端点上获取原始身体?

问题描述

我正在 Strapi 上构建一个自定义端点。对于这个端点,我需要有原始的正文内容。是否可以从ctx变量中获取它?

stripe : async(ctx) => {
    // Handle the event
    const sig = ctx.request.headers['stripe-signature']
    
    let event = null
    try {
      // ctx.request.body needs to be the original raw body
      event = stripe.webhooks.constructEvent(ctx.request.body,sig, endpointSecret)
    }catch (e) {
      ctx.badRequest(null,e)
      return
    }

标签: strapi

解决方案


创建一个中间件(/config/middleware.js)并将其更新为以下内容

module.exports = {
  settings: {
    cors: {
      enabled: true,
    },
    parser: {
      enabled: true,
      multipart: true,
      includeUnparsed: true,
    },
  },
};

在控制器中(/api/<model>/controllers/<model>.js):

const unparsed = require("koa-body/unparsed.js");
const unparsedBody = ctx.request.body[unparsed];

推荐阅读