11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

je cherche comment récupérer la résultat d'un fichier en c++ (traitement..cpp) puis je l'envoyer vers un utilisateur android , je parle ici de format JSON (REST).
c'est-a-dire qu'aprés le stockage de l'image sur le serveur (envoyer par l'utilisateur) je dois exécuter le fichier traitement.cpp et je récupère la résultat (ensembles des images) puis je l'envoyer vers l'utilisateur (application android).

alors j'ai essayé de stocker l'image sur ma serveur a travers ce petit code:

app.post('/up', function(req, res) {
var pathimg;
req.pipe(req.busboy); 
req.busboy.on('file', function (fieldname, file, filename) {
console.log("Uploading: " + filename);
pathimg = fs.createWriteStream('/home/usr1/Public/server/files/' + filename); 
file.pipe(pathimg);             
fs.readFile('/home/usr1/Public/server/files/'' + filename, unction read(err, data) 
{      
if(err){
res.json({'response':"Error upload"});     
}else
{
res.json({'response':"Saved to server [smile]"});
}       
});
};


dans ce code j'ai testé l’exécution du traiement.cpp:

var exec = require('child_process').exec;
var cmd = './test';
exec(cmd, function(error, stdout, stderr) {
// La résultat est dans stdout 
console.log('stdout  ->> résultat: '+stdout);
console.log('stderr: '+stderr);
if(error !== null){
console.log('Ops Problem of exec : ' +error);             
}
}); 


mais ce code il exécute le fichier (traiement.o) mais ma besoin est d'avoir stocker la résultat dedans dans un fichier dont le but de lire aprés ce fichier et l'envoyer dans un objet JSON vers l'utilisateur. comment le modifier pour stocker la résultat dans objet JSON avec Node.JS ?

Merci de m'aider pour avoir une solution Smiley smile
Je me lance quitte a être hors sujet ( le sujet l'est ...voir la fin) basé sur :express , busboy, chilprocess, child_process native doc , exec concept ) , j espère que les fonctions nodejs sont compatibles multi OS et ne pause pas de problèmes du aux OS ( voir mon post sur nodejs) .
L utilisateur doit recevoir la réponse de la variable res présent dans function ( req, res) non ?
 var body = '';
 req.setEncoding('utf8');
 body='jsonconten' /*stdout ? */
 var data = JSON.parse(body);
 res.write(typeof data);
 res.end();


v8 isolates can not share structured memory only buffers.
v8 json.parse
read json file using fs and json.parse


la fonction child_process.exe a une structure bien defini notamment le callback qui contient en arguments les valeur de retour de l'exe ( error , stderr , stdout ) qu il faut traiter . A noter que la documentation utilise la nouvelle syntaxe arrow (=>) ! . La fonction Execfile n 'utilise pas de fichier mais un buffer pour être plus efficace ( une sorte de gulp pipe ) .

Pouvez vous être plus explicite séquentielle sur les étapes :
-le client android ( web ou natif ? ) envoie un fichier image (raster ? )
-le serveur ( express module ? ) écrit en nodejs reçoit le fichier ( rest est du http avec json )
-le serveur passe ce fichier à une application native ( OS microsoft ? la commande test =" traitement.cpp" est elle exécutée reconnue dans OS en mode shell ? ) . le code C de test retourne t il bien le bon type compatible nodejs/buffer/codage ?
-Cette application retourne au serveur un contenu : quel structure ( raw , JSON XML HTML text ) ? et dans quelle container (buffer ? fichier ? ) , quel format (ansi unicode )?
-le serveur retourne ce contenu content-type:JSON au client web


au niveau serveur lorsque nodejs obtient le fichier celui est passé en arguments à l'exe
1) "nodejs" passe fichier a exe --------------------->ok
2) exe sauvegarde le fichier dans buffer OS --->ok ( la sauvegarde est elle déja conforme json ? )
3) "nodejs" lit le buffer
Avec le callback nodejs sait qu'en l'écriture dans le buffer se termine ( évt ecriture ) . Le contenu retourné par l'application exe ( return value ; ) est dans quel codage ( unicode) et format ( json ) ?
cette evt doit être gérer dans le callback ..non ?

 
app.post|get("/members", function(req, res) {
  var options = {
  host: 'www.test.fr',
  port: 80,
  path: '/member/returnpath',
  method: 'GET'
  };

  https.request(options, function(response) {
    response.pipe(res);
  });
});



nodejs utilise ? mais voir concept de add on


il faudrait préciser les compilateurs et le runtime utiliser dans les deux projets ( c et nodejs ) .
Les applications vont un moment utiliser un moyen de communiquer localement ou par l utilisaton d un tiers ( nodejs "plugin module" ou "core" ou addon nodejs v6 en C) voir les termes client/server/tiers ou message ( JSON XML) ou stream/thread/Buffer . Voir node-gyp, gpy , libuv , COM ,IPC , CORBA, socket.io .

Si on va à un niveau plus bas on est dans le problème de transtypage typage entre une fonction en C qui retourne une valeur qui doit être passé en argument d'une application qui s éxecute sur un runtime V8 javascript ( ou inversement , le principal est de comprendre l'idée générale ) .

Ce post qui contient ce lien doit pourvoir répondre à votre question.

ai déja coder python qui appelle java mais pas jamais js qui appelle C
en espérant que cela vous aide ...... ou vous donne des pistes

C'est votre premier poste donc bienvenue mais vous trouverez une meilleur réponse en postant sur un forum nodejs ou stackoverflow . Alsacreation est plus intégrateur et donc javascript coté client ( jquery , mootool) que serveur ( V8 nodejs ) a part dans un contexte grunt gulp et php /CMS .
Modifié par 75lionel (14 May 2016 - 19:49)