LoopBack Post API 如何接收无预定义参数的Raw Body请求
解决LoopBack模型接收Raw Body格式POST请求的问题
要让你的LoopBack模型正确接收Raw Body形式的POST请求,只需要修改remoteMethod的accepts配置,添加一个捕获请求体的参数即可。下面是调整后的完整代码:
'use strict'; module.exports = function (Message) { // 修改方法,新增rawBody参数来接收请求体 Message.hl7_message = function (rawBody, cb) { // 这里可以根据业务需求处理rawBody,比如打印查看内容 console.log('收到的Raw Body:', rawBody); cb(null, 'Success... 已成功接收请求体'); } Message.remoteMethod( 'hl7_message', { http: { path: '/hl7_message', verb: 'post', status: 200, errorStatus: 400 }, accepts: [ // 添加这个配置来捕获整个Raw Body { arg: 'rawBody', type: 'string', // 如果是JSON格式的Raw Body,可改为'object' source: 'body', // 指定参数来源为请求体 required: true, // 强制要求请求携带Body,可根据需求调整 description: 'Raw格式的请求体内容' } ], returns: { arg: 'status', type: 'string' } } ); };
关键配置说明:
source: 'body'是核心设置,它告诉LoopBack将整个请求体赋值给对应的参数type需匹配实际请求体类型:- 如果是HL7这类纯文本格式的消息,用
'string'即可 - 如果是JSON格式的Raw Body,直接设为
'object',LoopBack会自动帮你解析成JavaScript对象
- 如果是HL7这类纯文本格式的消息,用
required: true可以避免空请求的情况,若允许无Body的请求,可去掉这个配置
修改完成后,POST请求发送的Raw Body就会被正确传递到hl7_message方法的rawBody参数中,你可以在方法内对这个参数做后续的业务处理了。
内容的提问来源于stack exchange,提问作者H Dindi
相关产品推荐
相关产品推荐

