获取 post 请求的正文 vert.x javascript 垂直

Get body of post request vert.x javascript verticle

下面粘贴的是我成功部署的 javascript Verticle 的代码。由于找不到调试js verticle的方法,所以我打印了routingContext的所有属性以供参考。我正在尝试获取请求的正文,但是所有以 getBody 开头的函数都返回 null。我已将我提出的请求粘贴到代码下方,并在 intellij 终端中打印日志。我做错了什么吗?

JS Verticle 代码

var Router = require("vertx-web-js/router");
var server = vertx.createHttpServer();
var router = Router.router(vertx);
function writeHelp(obj) {
    var txt = "";
    for (var x in obj){
        txt += x + "->" + obj[x] + "\n";
    }
    return txt;
}
router.post("/provider").handler(function (routingContext) {
    var response = routingContext.response();
    var json = routingContext.getBodyAsString();
    response.putHeader("content-type", "text/plain");
    //console.log("Helper\n" + writeHelp(routingContext));
    //console.log("Request=" + writeHelp(routingContext.request()));
    console.log("body=" + json);
    response.end("Success");
});
server.requestHandler(router.accept).listen(8890);

POST 通过 ARC 提出的请求

从 Intellij 登录

Router: 257219241 accepting request POST http://localhost:8890/provider 
Route matches: Route[ path:/provider pattern:null handler:io.vertx.core.Handler$$NashornJavaAdapter@69b539e failureHandler:null order:0 methods:[POST]]@32182409 
Calling the  handler 
body=null

您必须添加 BodyHandler 才能获得已解析的正文:

来自官方文档:

var BodyHandler = require("vertx-web-js/body_handler");

// This body handler will be called for all routes
router.route().handler(BodyHandler.create().handle);