我通过Swagger API发送数据但无法在Node中接收数据

时间:2017-09-08 11:01:26

标签: node.js swagger-ui

我试图通过swagger将数据发送到节点API,但我无法在后端接收数据。 req.body是空的。任何帮助或建议将不胜感激。

MY Swagger代码:

/login:
    post:
      tags:
      - "login"
      summary: "User login"
      description: ""
      operationId: "auth"
      consumes:
      - "application/json"
      - "application/xml"
      - "html/text"
      produces:
      - "application/xml"
      - "application/json"
      - "html/text"
      parameters:
      - in: "body"
        name: "body"
        description: "User data that need to be passed for login "
        required: true
        schema:
          $ref: "#/definitions/Login"
      responses:
        200:
          description: "Success input"
definitions:
  Login:
    type: "object"
    properties:
      username:
        type: "string"
    xml:
      name: "Login"        name: "Login"

后端代码:

router.post('/login', (req, res, next) => {
    console.log(req.body);
})

1 个答案:

答案 0 :(得分:-1)

如果您使用快速中间件,则需要添加body-parser才能访问req.body:

https://www.npmjs.com/package/body-parser

导入它:

let server = new Express();
server.use(bodyParser.json());
server.use(bodyParser.urlencoded({// to support URL-encoded bodies
extended: true
}));

并添加:

var cmd = './xmllint --xpath "//OrderData" ' + this.filename + ' | ' + __dirname + '/node_modules/xml2json/bin/xml2json';
exec(cmd, function(error, stdout, stderr) { ... }