Javascript Can';在节点js中使用Request或Axios发布文件
我必须在前端代码中从表单中获取数据,并使用API调用将数据上载到另一台服务器,这是我目前无法做到的。我尝试了互联网上提到的许多方法和技巧来解决使用Request和Axios在NodeJs中上传文件时遇到的问题,但没有一种方法和技巧适用于这种特殊情况,我不知道为什么 以下是使用Axios时客户端的代码:Javascript Can';在节点js中使用Request或Axios发布文件,javascript,node.js,npm,request,axios,Javascript,Node.js,Npm,Request,Axios,我必须在前端代码中从表单中获取数据,并使用API调用将数据上载到另一台服务器,这是我目前无法做到的。我尝试了互联网上提到的许多方法和技巧来解决使用Request和Axios在NodeJs中上传文件时遇到的问题,但没有一种方法和技巧适用于这种特殊情况,我不知道为什么 以下是使用Axios时客户端的代码: app.post('/job/addjob', upload.any(), (req, res) => { console.log(req.files[0].path); v
app.post('/job/addjob', upload.any(), (req, res) => {
console.log(req.files[0].path);
var form = new formData();
form.append('Title', req.body.Title);
// form.append('Services', JSON.stringify(req.body.Services));
form.append('Startdate', req.body.Startdate);
form.append('NoOfPositions', req.body.NoOfPositions);
form.append('EndDate', req.body.EndDate);
form.append('Experience', req.body.Experience);
form.append('Rate', req.body.Rate);
form.append('Location', req.body.Location);
form.append('Description', req.body.Description);
// form.append('Questions', JSON.stringify(req.body.Questions));
form.append('Dresscode', fs.createReadStream(req.files[0].path));
axios({
method: 'post',
url: 'http://13.127.239.92:3000/job/addjob',
data: form,
headers: {'Content-Type': 'multipart/form-data', 'Authorization': req.session.verifiedToken}
}).then(function (response) {
console.log(response.data);
res.redirect('/provider');
})
.catch(function (err) {
//handle error
console.log(err);
res.redirect('/profile/getProfile');
});
});
我面临的错误是
Error Uploading Image.
如果我们使用请求,下面是我的客户端中的代码:
app.post('/job/addjob', upload.any(), (req, res) => {
console.log(req.files);
var options = {
'method': 'POST',
'url': 'http://13.127.239.92:3000/job/addJob',
'headers': {
'Content-Type': 'multipart/form-data',
'Authorization': req.session.verifiedToken
},
formData: {
'Title': req.body.Title,
// form.append('Services', JSON.stringify(req.body.Services));
'Startdate': req.body.Startdate,
'NoOfPositions': req.body.NoOfPositions,
'EndDate': req.body.EndDate,
'Experience': req.body.Experience,
'Rate': req.body.Rate,
'Location': req.body.Location,
'Description': req.body.Description,
// form.append('Questions', JSON.stringify(req.body.Questions));
'Dresscode1': fs.createReadStream(req.files[0].path),
}
};
request(options, function (error, response) {
if (error) { console.log(error) }
else {
console.log(response.data);
res.redirect('/provider');
}
});
});
我面临的错误是:
{ Error: socket hang up
at createHangUpError (_http_client.js:323:15)
at Socket.socketOnEnd (_http_client.js:426:23)
at Socket.emit (events.js:203:15)
at endReadableNT (_stream_readable.js:1145:12)
at process._tickCallback (internal/process/next_tick.js:63:19) code: 'ECONNRESET' }
这是服务器端代码的一小部分,可能有助于理解我的问题:
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'dresscodes/')
},
filename: function (req, file, cb) {
let uuid=v4();
cb(null, uuid +"."+mime.getExtension(file.mimetype))
pp= uuid +"."+mime.getExtension(file.mimetype);
}
});
let upload = multer({ storage: storage }).any();
upload(req,res,function(err) {
if(err) {
console.log(err);
return res.end("Error uploading image.");
} else{
var fullUrl = req.protocol + '://' + req.get('host') ;
现在最糟糕的是,我只能更改客户端代码,而不能更改服务器端代码