这么简单的几行代码就创建了一个web服务器:varexpress=require('express');varapp=express();varserver=require('http').Server(app);varbodyParser=require('body-parser');app.use(bodyParser.json({limit:'10mb',extended:true}));然后使用app.post("/getSimilarImage",function(req,res){//在这里写业务逻辑});你可以收到json请求。问题来了,我通过postman发送的json字符串,是如何被nodejs的express库处理的呢?调试,trim_prefix的参数路径是我在postman中测试的API端点:调用layer的handle_request方法,与SAPABAP中IF_HTTP_EXTENSION的HANDLE_REQUEST方法非常相似。express中的中间件,query.js:这个中间件也是采用直接和undefined比较的方式:这里准备开始读取入站json:通过stream上注册的回调函数onData读取数据:读取65018字节数据:写入将数据读入buffer:写入的同时,也被decoder在252行解码:当入站消息的所有数据都读完后,触发End事件,执行注册的回调done函数:此时,所有读取到的数据存放在变量body中:这个json.js负责将body变量中包含的字符串解析成json对象:可以看出最后还是使用了库body-parserNativeJSON.parse完成解析任务的API。获取更多Jerry原创文章,请关注公众号“王子熙”:
