Envoi de données depuis la page javascript / html vers le serveur Express NodeJS

Je travaille sur une application Cordova, en utilisant HTML et JavaScript.

L’architecture est la suivante: l’application téléphonique demande quelque chose au serveur, qui demande une firebase database Firebird. La firebase database répond au serveur qui fournit les données demandées à l’application téléphonique (en html5 / javascript).

J’ai été en mesure d’envoyer les données du serveur au téléphone avec JSON, et j’ai pensé que ce serait la même chose pour envoyer des données de l’application de téléphone au serveur. Cependant, je ne sais pas comment envoyer des données à un tel serveur à partir du téléphone. J’ai essayé de simplifier le problème autant que possible.

Donc, en considérant le code javascript suivant:

var send = { "name":"John", "age":30, "car":null }; var sendSsortingng = JSON.ssortingngify(send); alert(sendSsortingng); xhttp.send(sendSsortingng); 

(l’alerte ne m’envoie pas: {“nom”: “John”, “age”: 30, “car”: null})

Comment puis-je le récupérer sur mon serveur Node JS? Pour le moment, mon code est le suivant:

 app.post('/createEmp', function(req, res){ //res.send(req.body.name); //console.log('test :' + req.app.post('name')); //console.log(req); console.log('createEmp'); if(typeof(req) == 'undefined') {console.log('Y a rien'); } else { console.log('La req n est pas vide, son type est : ' + typeof req); } console.log(typeof req.query.name); }); 

Je laisse les commentaires pour que vous sachiez ce que j’ai déjà essayé (il y en a plus) … A chaque fois, le type de req est soit défini soit c’est un object, mais puisque c’est circulaire je ne peux pas l’parsingr donc je Je ne suis pas sûr que ce soit les données envoyées par l’application du téléphone.

Alors, pourriez-vous me donner un conseil, une explication sur la façon dont je pourrais envoyer les données du téléphone au serveur? (Je suppose que je pourrais essayer de montrer les données dans une URL qui serait analysée par le serveur mais je préfère ne pas avoir à le faire pour protéger les données …).

Toute aide serait appréciée ! Merci beaucoup !

(PS: j’ai déjà cherché des réponses partout mais rien n’a encore fonctionné)

req est un object plein de choses qui vient avec chaque requête. Vous devez obtenir le corps de votre demande. Cela pourrait vous aider: Comment récupérer les parameters de requête POST?

Mais comme il n’ya pas beaucoup de code JavaScript côté client, il faut vous demander: avez-vous spécifié que vous souhaitiez poster ceci?

Essayez le comme ici: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send … et lorsque vous utilisez xhr.setRequestHeader (“Content-Type”, “application / json “) vous n’avez probablement pas besoin de le contraindre.

Tout d’abord du côté du client, faites ceci.

 var send = { "name":"John", "age":30, "car":null }; var sendSsortingng = JSON.ssortingngify(send); alert(sendSsortingng); xhttp.send(send); 

Ensuite, côté serveur, vous devez append un middleware qui remplira le paramètre body de votre object de requête.

 var express=require("express"); var bodyParser=require("body-parser"); var app=express(); // Process application/x-www-form-urlencoded app.use(bodyParser.urlencoded({extended: true})) // Process application/json app.use(bodyParser.json()); app.post('/createEmp', function(req, res){ //now req.body will be populated with the object you sent console.log(req.body.name); //prints john });