express(WebStormのデフォルト)を使用してBasic Node.jsサーバーをセットアップし、Pythonスクリプトを実行するために要求に応じて(pebble watchから)作成しようとしました。返されたjsonを次の形式で送信します。Node.jsを使用して単純なデータを送信する方法を修正しました
{"willCollide": 1, "time": 6000, "strength": "NA"}
私はJavaScriptを調べ始めたばかりなので、ほとんど経験がなく、私がこれを間違ってやっていると思います。 現在、「エラー:送信後にヘッダーを設定できません」というメッセージが表示され、要求に応じてユーザーにjsonを送信する正しい方法が不思議です。 これは実際にPythonスクリプトからPebbleウォッチにデータを送る最善の方法であるかどうかも疑問に思っています。以下 は、リクエストに応じて呼び出されるJavaScriptファイル内のコードです:
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;
あなたはエクスプレスのどのバージョンを使用していますか? –