Bonjour,
J'aimerais savoir s'il était possible d’exécuter un bout de code en C depuis notre application node js?
Si oui comment où peut faire?
Merci d'avance pour vos réponse.
Bonjour,
J'aimerais savoir s'il était possible d’exécuter un bout de code en C depuis notre application node js?
Si oui comment où peut faire?
Merci d'avance pour vos réponse.
Il faut passer par nodejs et commande line il me semble.
http://shapeshed.com/command-line-ut...s-with-nodejs/
J'ai regarder ce que tu ma dit et j'avoue ne pas bien comprendre comment sa fonctionne et ou rentre mon programme en C...
Utilise child_process https://nodejs.org/api/child_process.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 var cp = require('child_process'); cp.exec('ls -la', function(err, stdout, stderr) { // par exemple un ls, mais tu y met lexécutable que tu veux if (err) throw err; if (stderr) console.warn(stderr); console.log(stdout); });
nodeJS supporte l'ajout de module écrits en C++
fichier hello.cc
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 // hello.cc #include <node.h> using namespace v8; void Method(const FunctionCallbackInfo<Value>& args) { Isolate* isolate = Isolate::GetCurrent(); HandleScope scope(isolate); args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world")); } void init(Handle<Object> exports) { NODE_SET_METHOD(exports, "hello", Method); } NODE_MODULE(addon, init)
le descripteur pour indiquer au compilateur comment ler le module C++ à nodeJS
binding.gyp
node-gyp configure pour générer le makefile
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 { "targets": [ { "target_name": "addon", "sources": [ "hello.cc" ] } ] }
et tu peux l'utiliser ainsi
tu trouveras la doc sur le site de nodeJS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 // hello.js var addon = require('./build/Release/addon'); console.log(addon.hello()); // 'world
A+JYT
Merci pour vos réponses, xulien je connais child processus mais j'aurais voulu quelque chose de plus intégrée si possible.
Sekaijin ta solution me parait pas mal mais je connais pas le C++ , il n'y a pas moyen de faire la même chose mais en C?
Partager