2017-02-09 6 views
1

Ich möchte itemId in http Anfrage senden. wie es geht und was werde ich auf dem Server req sehen?Wie sende ich zusätzliche Daten in Anfrage?

hier Anfrage:

var fd = new FormData(); 
var itemId = scope.vm.item._id; 

fd.append('file', scope.files[0]); 
$http.post('http://localhost:8090/file-upload', fd, { 
    transformRequest: angular.identity, 
    headers: { 
     'Content-Type': undefined 
    } 
}); 

Server

app.post('/file-upload', function(req, res, next) { 
console.log("received file"); 
var pathFile = ' '; 
var wId = "itemId"; 

var storage = multer.diskStorage({ 
    destination: function (req, file, callback) { 
     callback(null, './uploads/attachments'); 
     pathFile = file.originalname; 
    }, 
    filename: function (req, file,itemId, cb) { 
     cb(null, file.originalname); 
     console.log(itemId); 

    } 
}); 
var upload = multer({ storage : storage }).single('file'); 
upload(req,res,function(err) { 

    if(err) { 
     return res.end("Error uploading file."); 
    } 

    //save file path in work items doc.attachments 
    var path = './uploads/attachments/'+pathFile; 

res.end("File is uploaded"); 
}); 

dienen Code hinzugefügt. Wie bekomme ich itemId auf der Serverseite?

+1

Was ist mit 'fd.itemId = itemId'? – Dario

+0

addedded backend – Serhiy

+0

Sie können es einfach an die Formulardaten anhängen ... –

Antwort

1

Theres ein paar Möglichkeiten, wie Sie es tun könnten, können Sie einfach die Params-Eigenschaft in Ihren Post-Optionen festlegen und ein Objekt mit ID als Eigenschaft übergeben.

var fd = new FormData(); 
    var itemId = scope.vm.item._id; 

    fd.append('file', scope.files[0]); 
    $http.post('http://localhost:8090/file-upload', fd, { 
      transformRequest: angular.identity, 
        headers: {'Content-Type': undefined}, 
        params: {id: itemId} 

       }); 
+0

verwendet, aber nichts bekam in params: Aber in querry.thanks !!!!!!!!!!!!!!!!!! – Serhiy

+0

akzeptiert die Antwort in 3 min – Serhiy

0

Sie können die JSON-Zeichenfolge wie unten an das FromData-Objekt anhängen.

fd.append ('Parameter', JSON.stringify ({itemId: itemId}));

Auf der Serverseite erhalten Sie JSON-Zeichenfolge in Params-Schlüssel.

0

einfach fügen Sie Ihre Parameter in Params und übergeben Sie alle Parameter.

$http.post('http://localhost:8090/file-upload', fd, { 
       transformRequest: angular.identity, 
         headers: {'Content-Type': undefined}, 
         params: {id: scope.vm.item._id} 

        }); 

hoffe, das funktioniert für Sie.

Verwandte Themen