Express (WebStorm のデフォルト) を使用して基本的な Node.js サーバーをセットアップし、要求に応じて (pebble watch から) python スクリプトを実行し、返された json を次の形式で送信しようとしました。
{"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;