2016-12-19 1 views
0

Ich habe eine ausführbare Bibliothek in C (sudo. /ads1256_test adc.txt) wo Daten von einem ADC erworben werden, ebenso werden diese Daten automatisch in einer Textdatei gespeichert (ADC. txt).Ausgabe Kind Prozess innerhalb eines Servers auf node.js

Auf der anderen Seite habe ich einen Server in node.js (siehe Code), in dem dieses Programm ausgeführt werden soll, wenn eine Schaltfläche in der Website gedrückt wird. Dazu habe ich versucht, diesen Prozess mit dem Kindprozess .exec ('sudo ./ads1256_test adc.txt') zu implementieren, aber es hat nicht funktioniert. Es läuft scheinbar, aber die in der Datei gespeicherten Werte sind immer Null. Das ist völlig anders als das Ergebnis, wenn ich denselben Befehl im Terminal ausführe. Ich würde mich freuen, wenn mir jemand helfen könnte.

//Importing the core modules 
var express = require('express'); 
var path = require('path'); 
var sys = require('sys'); 
var fs = require('fs'); 
var util = require('util'); 
var sleep = require('sleep'); 

var app = express(); 
var exec = require('child_process').exec; 
var spawn = require('child_process').spawn; 

app.get('/', function(req,res){ 
    res.sendFile(path.join(__dirname + '/public/index.html')); 
}); 

//Static Directories 
app.use(express.static(__dirname + '/public')); 

app.post('/test', function (req, res) { 
    exec('sudo ./ads1256_test adc.txt'); 
});  

//Server Starting 
var server = app.listen(8080, function(err){ 
    if(err){ 
     console.log('Error starting http server'); 
    } else{ 
    console.log('Sever running at http://localhost:8080 '); 
    } 
}); 

Antwort

0

erste, was zuerst, um Ihren Code zu beheben - asynchron den CP Laich Griff - Show Fehler

Beispiel mit Baum, können Sie es zu Ihrem binären anzupassen und die Antwort zu überprüfen, sollte es Ihnen helfen, vorwärts gehen.

app.post('/test', function (req, res) { 
    var cp = spawn('tree', []); 
    cp.stdout.pipe(res); 
    cp.stderr.pipe(res); 
    cp.on('close', function() { 
     res.end(); 
     cp.stdout.unpipe(); 
     cp.stderr.unpipe(); 
    }); 
}); 
Verwandte Themen