У меня есть два узла. Яркие/экспресс-серверы, которые общаются друг с другом с помощью http. сервер A также общается с браузером и может обрабатывать запросы на загрузку файлов. Когда файл загружается на сервер A Я хочу передать его как есть сервер B для дальнейшей обработки. что это лучший способ сделать это? желательно с модулем request-promise, который является тем, что я использую для связи между двумя серверами.Передача файлов между двумя серверами node.js по http:
Это то, что я получил до сих пор, но я не в состоянии передать файл между серверами, файл успешно загружен на сервер А, и нет ошибок при отправке его 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;
Сервер 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');
}
};
Сервер 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;
Сервер B ProcessFile:
здесь я хочу обработать файл с сервера A но req.file
является undefined
'use strict';
module.exports = (req, res) => {
if(req.file) {
// here i want to do something with the file.
}
};
Попробуйте это, http://stackoverflow.com/questions/22279922/file-data-transfer-between-two-node-js-servers – kasey
@kasey Это касается связи через ** WebSockets **. Этот вопрос связан с двумя серверами, обменивающимися через ** http **. – zero298
Вы нашли идеальное решение? Я пытаюсь сделать то же самое, но проблема с отправкой файла. Использование [form-data] (https: // github.com/form-data/form-data) с [request] (https://github.com/request/request) –