场景是express接收到req中的文件后需要将文件转发至远端接口
var
express = require('express'),
request = require('request'),
multer = require('multer'),
upload = multer({ dest: 'uploads/' }),
Q = require('q'),
app=express();
app.post('/sapi/servlet/fileupload', upload.single('file'), function (req, res, next) {
console.log(req.file);
var reqParam = {
method:req.method,
url: 'http://xxx.xxx.xxx/upload',
qs: req.query,
body: req.body,
headers: {
},
json: true
};
var deferred = Q.defer();
request(reqParam, function (err, res, body) {
if (err) {
return deferred.reject(new ServiceReqError('ServiceRequestError', 500, err));
}
if(res){
if (res.statusCode && (res.statusCode !== 200 || !body)) {
return deferred.reject(new ServiceReqError('ServiceRequestError', res.statusCode, body || 'error'));
}
}
if(body){
//if (body.statusCode && (body.statusCode !== '200' || body.result !== 'true')){
// return deferred.reject(new ServiceReqError('ServiceRequestError', body.message || '服务器离家出走'));
//}
}
//console.log(res.headers);
deferred.resolve([body,res]);
});
return deferred.promise;
});