Ich habe einen grundlegenden Node.js Server mit Express (WebStorm Standard) eingerichtet, und habe versucht, es auf Anfrage (von einem Pebble Watch) zu machen, ein Python-Skript und senden Sie die zurückgegebene JSON in der Form:Korrekte Methode zum Senden von einfachen Daten mit Node.js
{"willCollide": 1, "time": 6000, "strength": "NA"}
zurück auf die Uhr. Ich habe gerade angefangen, in JavaScript zu schauen, also habe sehr wenig Erfahrung und würde erwarten, dass ich das meiste davon falsch mache. Derzeit erfahre ich einen "Fehler: kann Header nicht festlegen, nachdem sie gesendet werden" und fragte mich, was die richtige Methode ist, einen JSON an einen Benutzer auf eine Anfrage zu senden? Ich frage mich auch, ob dies in der Tat die beste Methode ist, um die Daten vom Python-Skript an eine Pebble-Uhr zu senden. Unten ist der Code in der JavaScript-Datei auf der Anfrage genannt werden:
var express = require('express');
var router = express.Router();
var PythonShell = require('python-shell');
var options = {
mode: 'json'
};
var rain_data;
function run_py_script(data){
var pyshell = new PythonShell('dummy.py', options);
var ret_val;
/* Dummy data doesnt matter atm */
pyshell.send("dummy data"); // change to data
pyshell.on('message', function(message){
console.log(message);
ret_val = message;
console.log(message["willCollide"]); // debug check
});
pyshell.end(function(err){
if (err) {
console.log('error received from python script');
}
console.log('finished script');
});
return ret_val;
}
/* GET rain_track data. */
router.get('/', function(req, res, next) {
rain_data = run_py_script(null);
res.write(rain_data);
res.end();
});
module.exports = router;
Welche Version von Express werden verwenden Sie? –