bab*_*dev 5 javascript node.js express multer
我有两个 node.js/express 服务器,它们通过 http 相互通信。服务器A还与浏览器通信并可以处理文件上传请求。当文件上传到服务器 A时,我想将其按原样传输到服务器 B进行进一步处理。最好的方法是什么?最好使用请求承诺模块,这是我用于两个服务器之间通信的模块。
这是我到目前为止得到的,但我无法在服务器之间传输文件,文件已成功上传到服务器 A,并且发送到服务器时没有错误server B
,但服务器 B 无法识别该请求文件。我在这里缺少什么?
服务器A路由:
'use strict';
// Routes
const express = require('express');
const router = express.Router();
const multer = require('multer');
const upload = multer();
const uploadController = require('./controllers/file/upload');
router.post('/upload',upload.single('file'),uploadController);
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
服务器A uploadController:
'use strict';
const RP = require('request-promise');
module.exports = (req, res) => {
const body = req.body;
if(req.file) {
const file = req.file;
RP('http://serverB.net/process', {
method: 'POST',
formData: {file_buffer: file.buffer},
body: body
})
.then((response) => {
return res.status(200).send(response);
})
.catch((e) => {
return res.status(500).send(e.message);
})
}
else {
return res.status(500).send('unable to upload file');
}
};
Run Code Online (Sandbox Code Playgroud)
服务器B路由:
'use strict';
// Routes
const express = require('express');
const router = express.Router();
const multer = require('multer');
const process = multer();
const processFile = require('./controllers/file/processFile');
router.post('/process', process.single('file'), processFile);
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
服务器B进程文件:
在这里我想处理来自服务器 A 的文件req.file
,但是undefined
'use strict';
module.exports = (req, res) => {
if(req.file) {
// here i want to do something with the file.
}
};
Run Code Online (Sandbox Code Playgroud)
您发送文件时使用的编码可能不是multipart/form-data
. 尝试在文件发送请求中设置该标头。Expressreq.files
只会填充一个multipart/form-data
Expressreq.files
只会填充一个multipart/form-data
。您已经在使用multer,所以我猜测发送编码不太正确。
RP({
method: "POST",
uri: "serverB.net",
form: {
file: file.buffer
},
headers: {
"Content-Type": "multipart/form-data"
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4574 次 |
最近记录: |