使用multer将文件从一个节点服务上传到另一服务

时间:2019-09-06 08:39:13

标签: node.js multer

我想使用node.js将一些文件上传到远程位置。根据我们的项目结构,有一个中间服务。每个服务器请求都是通过此中间服务发生的。我正在使用multer包上传文件。从中间服务中,我可以使用multer获取文件。但是,从此处将这些文件发送到原始服务时遇到了问题。以下是中间代码。

var multer = require('multer');;
var upload = multer();

app.post('intermediate/upload-file',upload.any(), function fileUploadForQuestion(req, res) {

  let url ='original service api';
  var headers = req.headers;
  var options = {
    strictSSL: false,
    url: url,
    method: "POST",
    headers: headers,
    formData: {
      file: req.files // Array of files will be available here because of the package multer
    }
  };

  request(options, function(error, response, body) {
    console.log("Success2");
    if (error) {
      return console.log(error);
    }
    console.log(body.explanation);
  });  
});

以下是终端服务器功能。中间服务器正在尝试调用此邮政服务以上传文件。

var multer = require('multer');;


var storage = multer.diskStorage({
  // file upload destination
  destination: function(req, file, callback) {
    callback(null, "C:\\uploads\\");
  },
  filename: function(req, file, callback) {
    // custom function to change filename
    console.log(`Original Name : ${file.originalname}`);
    var fileExtension = file.originalname.split(".");
    callback(
      null,
      `${file.originalname}-${Date.now()}.${
        fileExtension[fileExtension.length - 1]
      }`
    );
  }
});

var upload = multer({ storage: storage }).any();

app.post('/originalServer/fileUpload', function fileUploadForQuestion(req, res) {
    console.log(`File Count : ${(req.files && req.files.length) ? req.files.length : 0}`);
    console.log(`Body : ${JSON.stringify(req.body)}`);
    console.log(`Form : ${req.formData}`);
  upload(req, res, function(err) {
    if (err) {
      return res.send(`Error : ${JSON.stringify(err)}`);
    } else {

      res.send({'message':'done'});
    }
  });
});

请帮助我解决同样的问题。

0 个答案:

没有答案