私はここで何か面倒なことをしようとしていますが、multer
のファイルをMemoryStorage
にアップロードしています。要点は、ファイルをメモリから取り出して別のサーバーに送信する必要があることです。ここで私はやっているものです:node/multer/axiosでファイルをアップロードする
var express = require('express');
var router = express.Router();
var path = require('path');
const multer = require('multer');
const FormData = require('form-data');
router.post('/files', upload.single('file'), function (req, res) {
const axios = require('axios');
const url = configuration.dataHub.url + '/api/files';
var config = {
headers: {'x-token': req.session.token, 'Content-Type': 'application/json'}
};
const form = new FormData();
form.append('file', req.file.buffer);
if (req.session.hasOwnProperty('token')) {
axios.post(url, form, config)
.then(response => {
if (response.data.success) {
console.log("Arquivo enviado");
res.send({
success: true,
message: 'Arquivo enviado com sucesso!'
});
} else {
console.log("Arquivo nao enviado");
res.send({
success: false,
message: "Houve um problema ao enviar a ficha, verifique sua conexão ou tente novamente mais tarde."
});
}
})
.catch((error) => {
console.log("N Enviado", error.message);
res.send({
success: false,
message: "Houve um problema ao enviar o arquivo, verifique sua conexão ou tente novamente mais tarde."
});
});
} else {
res.send({
success: false,
session: false,
message: "Sua sessão expirou após 5 minutos sem uso. Faça login novamente!"
});
}
});
をこのコードを使用して、私はエラーを取得しています:
write after end
このための任意のソリューション?
そのエラーは、スタックトレースが付属していますか?エラーメッセージの前にコンソールロギングのどのビットが表示されますか?エラーはあなたの 'N Enviado'ロギングの一部として記録されていますか? – skirtle
はい、「終了後書き込み」 – erickles