0

根据 API 文档,要从 POST 请求接收 json 作为 formData,必须使用 body-parser。我已经在网关服务中声明了它,但我仍然无法在我的操作中收到 formData。

api.service.js

module.exports = {
 name: "api",
 mixins: [ApiGateway],

 settings: {
    port: process.env.PORT || 3000,

    routes: [{
        path: "/api",
        aliases: {
          "POST users": "users.insertUser",
        },
        //The API Documentation recomends using the body-parser here
        bodyParsers: {
            json: true,
            urlencoded: { extended: true }
        },
    }],

    // In some example they also set the body-parser here
    bodyParsers: {
        json: true,
        urlencoded: { extended: true }
    },
 },
};

在操作 service.insertUser 操作中,我应该将 req.body 作为 ctx.params 接收,但它始终为空

我的 users.service.js

    actions: {
    insertUser: {
        handler(ctx) {
            this.logger.info("posting", ctx.params); // -> prints {} instead of the formData
        }
    }
4

1 回答 1

0

你试过给参数吗

insertUser: {
            auth: "required",
            params: {
                function_id: { type: "string" },
                role_id: { type: "string" },
            },
            handler(ctx) { ctx.params.role_id 

图像

于 2019-11-28T15:32:27.623 回答