Bonjour,
J'ai des informations sur l'utilisateur qui sont envoyées depuis angularJS ( collecter depuis un formulaire html) vers nodeJS.
Le probléme que j'ai pas bien récupérer ces données au sien de la fonction nodeJS.
-Formulaire html:
<form role="form" enctype="multipart/form-data" name="myForm">
<input type="text" ng-model="UserName" required="required">
<input type="text" ng-model="FirstName" required="required">
<input type="file" ng-model="Image" required="required">
<button type="submit" ng-click="addUser()">save</button>
</form>
$scope.addUser=function(){
var user ={
UserName: $scope.UserName,
FirstName:$scope.FirstName
};
console.log("info User: "+user.UserName);//Well recovered data
$http.post(url+"/add",$scope.user,$scope.Image)
.success(function(data){
$scope.ListUsers=data;
}).error(function(err,data){
console.log("error " +err);
});
};
app.post("/add",function (req,res) {
console.log("data of user: "+req.body); //undefined
http.get(url+"/addInfoUsers",req.body,req.Image, function (repsHttp) {
//error here
var body='';
repsHttp.on('data',function(d) {
body += d;
});
repsHttp.on('end',function() {
try {
var user = JSON.parse(body);
} catch(e) {
console.log('error ', +body);
}
res.json(user);
});
});
});
-API JAX-RS for l'ajout d'utilisateur:
@RequestMapping(value="/addInfoUsers",headers = "content-type=multipart/*")
@Consumes("multipart/form-data")
public Users AddUser( @FormDataParam("file") InputStream uploadedInputStream,
@RequestParam(value="file") MultipartFile fileDetail,
HttpServletRequest request,
@RequestBody(required=false) Users user){
UM.AddDataUsers(uploadedInputStream,fileDetail,user);
}
Merci de m'aider à trouver,
Hey,
Dans ta fonction addUser sur ton code angular tu n'envois pas la bonne variable dans ta requête POST.
Tu envois $scope.user au lieu de user.
$scope.addUser=function(){
var user ={
UserName: $scope.UserName,
FirstName:$scope.FirstName
};
console.log("info User: "+user.UserName);//Well recovered data
$http.post(url+"/add",user)
.success(function(data){
$scope.ListUsers=data;
}).error(function(err,data){
console.log("error " +err);
});
};
Hello, je ne connais pas du tout Angularjs donc je ne pourrais pas voir si il y a un problème dans ton code utilisant Angularjs, ceci étant dit, il semblerait que ce soit plus un problème lié à ton utilisation de nodejs.
Pourquoi tu n'utilises pas un micro-framework tels que express ou restify pour te simplifier la vie quant à la communication HTTP ?
Si tu pouvais donner plus de code node ça serait cool car j'ai réellement du mal à comprendre ce que tu fais (car c'est totalement illogique)... Tu utilises la variable app (ce qui pourrait faire penser à expressjs) puis ensuite http (ce qui pourrait faire penser au module node) pour intérsepter les requêtes http *mind blown*.
Salut,
Pourquoi, côté NodeJS, fais-tu une requête HTTP vers une autre route ? C'est vraiment bizarre de faire comme ça.
En relisant ton code, j'ai comme l'impression que tu ne sais pas ce que tu fais. Commence donc par regarder la formation consacrée à NodeJS, cela te permettra déjà de comprendre les bases.