微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 RestBulider 发送和接收文件

如何解决通过 RestBulider 发送和接收文件

controller on localhost:8000
const fs = require("fs");
exports.install = function () {
  ROUTE("GET     /",indexPage);
};

function indexPage() {
  var self = this;

  console.log(" In GET ROUTE");


  RESTBuilder.GET("http://127.0.0.1:8500/getFile/").stream(function (
    err,response
  ) {
    if (err) {
      console.log(err);
      return;
    }
   
    var writer = fs.createWriteStream("./public/testBuilder.txt");
    // console.log("Writing to file");
    response.pipe(writer);
    self.json({ thankyou: "ok" });
  });
}


controller on localhost:8500

exports.install = function () {
  ROUTE("GET /getFile/",test);
};

function test() {
  var self = this;
  console.log("#################");
  console.log(self.body); 
  self.file("~trimsail/restBuilder.txt");
  // });
}

以上代码在 totaljs 3 中有效,但在 total4 中失败。 发送文件以响应 RestBuilder.GET 并将响应流式传输到文件错误 response.pipe 不是函数

解决方法

首先,请清理您的代码。

针对 Total.js 进行了优化

const Fs = require('fs');

exports.install = function () {
    ROUTE('GET /',index);
};

function index() {

    var $ = this;

    console.log('In GET ROUTE');

    RESTBuilder.GET('http://127.0.0.1:8500/getFile/').stream($.successful(function(response) { 
        var writer = Fs.createWriteStream('./public/testBuilder.txt');
        response.stream.pipe(writer);
        $.json({ thankyou: 'ok' });
    }));

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。