我想使用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'});
}
});
});
请帮助我解决同样的问题。