将请求从服务原样传递给另一项

时间:2018-11-21 18:02:52

标签: node.js swagger loopbackjs multer

我遇到以下情况:

  1. 我有一个环回服务(核心),该服务具有远程方法 POST / Core / {id} / upload (公开访问)
  

Core.remoteMethod('upload',{           接受:[               {                   arg:'id',                   类型:“字符串”,                   description:“实体实例ID。”,                   要求:正确,                   http:{来源:“路径”}               },               {                   arg:“ req”,                   类型:“对象”,                   要求:正确,                   描述:“请求对象”,                   http:{来源:“ req”}               }           ],           返回:{               arg:'输出',               类型:“ $ new_EntityPostResponseProps”,               根:正确,               描述:“返回已更新的实体实例。”           },           description:'将资源上传到指定资源。',           证明:是的,           http:{               动词:“ patch”,               路径:'/:id / upload'           }       });

    我有另一个具有远程方法的回送服务(实体) POST /实体/ {id} /上传(不公开)
  

Entities.remoteMethod('upload',{           接受:[               {                   arg:'id',                   类型:“字符串”,                   description:“实体实例ID。”,                   要求:正确,                   http:{来源:“路径”}               },               {                   arg:“用户”,                   类型:“字符串”,                   要求:正确,                   description:“用户实例ID。”,                   http:{来源:“查询”}               },               {                   arg:“文件”,                   类型:“字符串”,                   要求:正确,                   描述:“请求。”,                   http:{来源:“表格”}               }           ],           返回:{               arg:'输出',               类型:“实体”,               根:正确,               描述:“返回已更新的实体实例。”           },           说明:'更新更新后的实体实例。',           记录:真实,           http:{               动词:“ patch”,               路径:'/:id / upload'           }       });

  1. 我使用 loopback-connector-swagger 连接两个服务
  2. 我使用 multer 处理多部分/表单数据请求

我有以下问题:

  1. 我使用 POST / Core / {id} / upload 端点
  2. 上传文件
  3. 已发送的文件以下列格式在Core服务上接收:
  

{字段名:“文件”,原始名称:“ quickstart.mp4”,编码:“ 7bit”,   mimetype:“视频/ mp4”,缓冲区:   大小:29}

  1. 然后我执行一个JSON.stringify(file)并将其作为 string 字段通过招摇发送到Entities服务,在Entities服务上我对参数执行JSON.parse
  2. 如果文件的大小为100mb,则JSON.stringify使服务器崩溃
  3. 在核心和实体之间也要考虑周到的延迟,直到文件完全通过

我如何才能通过摇摇晃晃地将Core收到的,未更改且未更改的请求传递给Entities服务?(Core应该只是一个传递服务,我不应该在JSON.stringify上文件数据,我只想将其传递给实体服务)

如果我不能原封不动地发送请求,我认为我可以将文件数据缓冲区直接发送到Entities服务,但是我没有使它起作用,它将显示为undefined。

建议和示例非常感谢!

谢谢!

0 个答案:

没有答案