{"id":1899,"date":"2018-02-02T14:48:47","date_gmt":"2018-02-02T05:48:47","guid":{"rendered":"http:\/\/bezelie.com\/blog\/?page_id=1899"},"modified":"2018-02-25T21:56:40","modified_gmt":"2018-02-25T12:56:40","slug":"%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e8%a7%a3%e8%aa%ac%e3%80%8cserver_chat-js%e3%80%8d","status":"publish","type":"page","link":"http:\/\/bezelie.com\/blog\/?page_id=1899","title":{"rendered":"\u30d7\u30ed\u30b0\u30e9\u30e0\u89e3\u8aac\u300cserver_chat.js\u300d"},"content":{"rendered":"<p style=\"padding-left: 30px;\">\u30fbserver_chat.js\u306f\u30e9\u30ba\u30d1\u30a4\u306e\u4e2d\u3067web\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u52d5\u304fNode.js\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u3059\u3002\uff08<a href=\"http:\/\/bezelie.com\/blog\/?page_id=1905\">Node.js\u3068\u306f\uff1f<\/a>\uff09<\/p>\n<hr \/>\n<h5>\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u8aad\u307f\u8fbc\u307f<\/h5>\n<pre class=\"height:200 lang:js range:1-32 decode:true\" title=\"server_chat.js\">\/\/ \u3079\u30bc\u30ea\u30fc\u8a2d\u5b9aWeb\u30a2\u30d7\u30ea\n\/\/ for Bezelie Edgar\n\/\/ in Node-JS\n\/\/ by Jun Toyoda (Team Bezelie)\n\/\/ From  Aug 10th 2017\n\/\/ ---------------------------------------------------------------------------------\n\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30ed\u30fc\u30c9\u3057\u3066\u5909\u6570\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066\u8aad\u307f\u8fbc\u3080\nvar http = require('http'); \/\/ http\u30a2\u30af\u30bb\u30b9\u306e\u305f\u3081\u306e\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   http.createServer(function);\nvar fs   = require('fs');   \/\/ \u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u64cd\u4f5c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   fs.readFile('file name','utf-8',callback function)\n                            \/\/   fs.readFileSync('file name','utf-8')\nvar ejs  = require('ejs');  \/\/ JS\u7528\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30a8\u30f3\u30b8\u30f3ejs(Embedded JavaScript Templates)\n                            \/\/    ejs.render(\u5909\u6570\u306b\u4ee3\u5165\u3055\u308c\u305fejs, \u7f6e\u63db\u30c7\u30fc\u30bf\u30aa\u30d6\u30b8\u30a7\u30af\u30c8);\nvar url  = require('url');  \/\/ URL\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3084\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    url.parse(request.url);\nvar qs   = require('querystring');\n                            \/\/ \u30af\u30a8\u30ea\u30fc\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3057\u3066\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    qs.parse();\nvar exec = require('child_process').exec;\n                            \/\/ \u5b50\u30d7\u30ed\u30bb\u30b9\u306e\u751f\u6210\u3068\u7ba1\u7406\u3092\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3002\n                            \/\/    exec(COMMAND, [options], callback(error, stdout, stderr) {}\n                            \/\/    option maxBuffer:\u30d0\u30c3\u30d5\u30a1\u306e\u6700\u5927\u5bb9\u91cf(byte)\n                            \/\/    error :\u30a8\u30e9\u30fc\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n                            \/\/    stdout:\u6a19\u6e96\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\n                            \/\/    stderr:\u6a19\u6e96\u30a8\u30e9\u30fc\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\nvar CSV  = require(\"comma-separated-values\");\n                            \/\/ CSV\u3092\u914d\u5217\u5909\u6570\u3084\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\nvar os   = require('os');\n                            \/\/    os.networkInterfaces();\nvar sleep = require('sleep');\n                            \/\/ \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\u7528\u30e2\u30b8\u30e5\u30fc\u30eb\n\/\/ ejs\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nvar template            = fs.readFileSync(__dirname + '\/ejs\/template.ejs', 'utf-8');\nvar top                 = fs.readFileSync(__dirname + '\/ejs\/top.ejs', 'utf-8');\nvar editBasic           = fs.readFileSync(__dirname + '\/ejs\/editBasic.ejs', 'utf-8');\nvar editChat            = fs.readFileSync(__dirname + '\/ejs\/editChat.ejs', 'utf-8');\nvar editTime            = fs.readFileSync(__dirname + '\/ejs\/editTime.ejs', 'utf-8');\nvar editServo           = fs.readFileSync(__dirname + '\/ejs\/editServo.ejs', 'utf-8');\nvar setBasic            = fs.readFileSync(__dirname + '\/ejs\/setBasic.ejs', 'utf-8');\nvar setTime             = fs.readFileSync(__dirname + '\/ejs\/setTime.ejs', 'utf-8');\nvar setServo            = fs.readFileSync(__dirname + '\/ejs\/setServo.ejs', 'utf-8');\nvar editIntent          = fs.readFileSync(__dirname + '\/ejs\/editIntent.ejs', 'utf-8');\nvar selectIntent4entity = fs.readFileSync(__dirname + '\/ejs\/selectIntent4entity.ejs', 'utf-8');\nvar editEntity          = fs.readFileSync(__dirname + '\/ejs\/editEntity.ejs', 'utf-8');\nvar selectIntent4dialog = fs.readFileSync(__dirname + '\/ejs\/selectIntent4dialog.ejs', 'utf-8');\nvar editDialog          = fs.readFileSync(__dirname + '\/ejs\/editDialog.ejs', 'utf-8');\nvar starting_pythonApp  = fs.readFileSync(__dirname + '\/ejs\/starting_pythonApp.ejs', 'utf-8');\nvar reboot              = fs.readFileSync(__dirname + '\/ejs\/reboot.ejs', 'utf-8');\nvar chatMode            = fs.readFileSync(__dirname + '\/ejs\/chatMode.ejs', 'utf-8');\nvar faceMode            = fs.readFileSync(__dirname + '\/ejs\/faceMode.ejs', 'utf-8');\nvar disableServer       = fs.readFileSync(__dirname + '\/ejs\/disableServer.ejs', 'utf-8');\nvar test                = fs.readFileSync(__dirname + '\/ejs\/test.ejs', 'utf-8');\n\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar routes = { \/\/ \u30d1\u30b9\u3054\u3068\u306e\u8868\u793a\u5185\u5bb9\u3092\u9023\u60f3\u914d\u5217\u306b\u683c\u7d0d\n    \"\/\":{\n        \"title\":\"BEZELIE\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u8a2d\u5b9a\u30c7\u30fc\u30bf\u306e\u7de8\u96c6\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":top}, \/\/ \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\n    \"\/editBasic\":{\n        \"title\":\"\u57fa\u672c\u8a2d\u5b9a\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u306e\u57fa\u672c\u7684\u306a\u8a2d\u5b9a\u3092\u884c\u3044\u307e\u3059\",\n        \"content\":editBasic},\n    \"\/editChat\":{\n        \"title\":\"\u5bfe\u8a71\u8a2d\u5b9a\",\n        \"message\":\"\uff13\u7a2e\u985e\u306e\u30c7\u30fc\u30bf\u3092\u7de8\u96c6\u3059\u308b\u3053\u3068\u3067\u3001\u5bfe\u8a71\u3092\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":editChat},\n    \"\/editTime\":{\n        \"title\":\"\u6642\u9593\u8a2d\u5b9a\",\n        \"message\":\"\u30a2\u30e9\u30fc\u30e0\u3068\u6d3b\u52d5\u6642\u9593\u306e\u8a2d\u5b9a\u3092\u3057\u307e\u3059\",\n        \"content\":editTime},\n    \"\/editServo\":{\n        \"title\":\"\u30b5\u30fc\u30dc\u8abf\u6574\",\n        \"message\":\"\u30b5\u30fc\u30dc\u306e\u521d\u671f\u4f4d\u7f6e\uff08\u89d2\u5ea6\uff09\u3092\u8abf\u6574\u3057\u307e\u3059\u3002\u5358\u4f4d\u306f\u5ea6\u3067\u3059\u3002\u30b5\u30fc\u30dc\u3092\u4e0a\u304b\u3089\u898b\u3066\u6642\u8a08\u56de\u308a\u304c\u6b63\u306e\u5024\u306b\u306a\u308a\u307e\u3059\",\n        \"content\":editServo},\n    \"\/chatMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/faceMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/disableServer\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u306b\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/editIntent\":{\n        \"title\":\"\u3010\u8cea\u554f\u5185\u5bb9\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u5185\u5bb9\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u805e\u304d\u305f\u3044\u5185\u5bb9\u306e\u3053\u3068\u3067\u3059\u3002\u3053\u306e\u6587\u5b57\u304c\u97f3\u58f0\u8a8d\u8b58\u3055\u308c\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u306e\u3067\u3001\u308f\u304b\u308a\u3084\u3059\u3044\u540d\u79f0\u3092\u3064\u3051\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editIntent},\n    \"\/selectIntent4entity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u671b\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":selectIntent4entity},\n    \"\/editEntity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u306e\u8272\u3005\u306a\u8a00\u3044\u56de\u3057\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u306e\u8a00\u3044\u56de\u3057\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u8cea\u554f\u3059\u308b\u969b\u306e\u3001\u3055\u307e\u3056\u307e\u306a\u8a00\u3044\u304b\u305f\u306e\u3053\u3068\u3067\u3059\u3002\u3072\u3089\u304c\u306a\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editEntity},\n    \"\/selectIntent4dialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u597d\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n        \"content\":selectIntent4dialog},\n    \"\/editDialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8fd4\u7b54\u5019\u88dc\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8fd4\u7b54\u5019\u88dc\u3068\u306f\u30e6\u30fc\u30b6\u30fc\u304b\u3089\u306e\u8cea\u554f\u306b\u5bfe\u3059\u308b\u3079\u30bc\u30ea\u30fc\u304b\u3089\u306e\u8fd4\u7b54\u306e\u5019\u88dc\u3067\u3059\u3002\u8907\u6570\u306e\u8fd4\u7b54\u3092\u8a2d\u5b9a\u3057\u305f\u5834\u5408\u306f\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u3070\u308c\u307e\u3059\u3002\",\n        \"content\":editDialog},\n    \"\/reboot\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":reboot},\n    \"\/starting_pythonApp\":{\n        \"title\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":starting_pythonApp},\n    \"\/setBasic\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setBasic},\n    \"\/setTime\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setTime},\n    \"\/setServo\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setServo},\n    \"\/test\":{\n        \"title\":\"\u30c6\u30b9\u30c8\",\n        \"message\":\"\u3053\u308c\u306f\u30c6\u30b9\u30c8\u7528\u306e\u30da\u30fc\u30b8\u3067\u3059\",\n        \"content\":test}\n};\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar file_chatIntent            = \"\/home\/pi\/bezelie\/chatIntent.csv\";\nvar file_chatEntity            = \"\/home\/pi\/bezelie\/chatEntity.csv\";\nvar file_chatDialog            = \"\/home\/pi\/bezelie\/chatDialog.csv\";\nvar file_chatEntity_tsv        = \"\/home\/pi\/bezelie\/chatEntity.tsv\";\nvar file_chatEntity_dic        = \"\/home\/pi\/bezelie\/chatEntity.dic\";\nvar file_debug                 = \"\/home\/pi\/bezelie\/debug.txt\";\nvar file_data_chat             = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\";\nvar file_restart_app           = \"\/home\/pi\/bezelie\/edgar\/restart_app.sh\";\nvar file_exec_talk             = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\";\nvar file_setting_chatMode      = \"\/home\/pi\/bezelie\/edgar\/setting_chatMode.sh\";\nvar file_setting_faceMode      = \"\/home\/pi\/bezelie\/edgar\/setting_faceMode.sh\";\nvar file_setting_disableServer = \"\/home\/pi\/bezelie\/edgar\/setting_disableServer.sh\";\nvar errorMsg = \"\"; \/\/ \u3053\u308c\u304c\u7a7a\u6b04\u306e\u3068\u304d\u306f\u30a8\u30e9\u30fc\u7121\u3057\nvar posts = \"\";    \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3067\u9001\u3089\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\nvar intent = \"\";   \/\/ \u4eca\u56de\u9078\u629e\u3055\u308c\u305fintent\uff08\u5358\u6570\uff09\n\n\/\/ \u95a2\u6570\u5b9a\u7fa9\nfunction getLocalAddress() {                    \/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u53d6\u5f97\n    var ifacesObj = {}\n    ifacesObj.ipv4 = [];\n    ifacesObj.ipv6 = [];\n    var interfaces = os.networkInterfaces();\n\n    for (var dev in interfaces) {\n        interfaces[dev].forEach(function(details){\n            if (!details.internal){\n                switch(details.family){\n                    case \"IPv4\":\n                        ifacesObj.ipv4.push({name:dev, address:details.address});\n                    break;\n                    case \"IPv6\":\n                        ifacesObj.ipv6.push({name:dev, address:details.address})\n                    break;\n                }\n            }\n        });\n    }\n    return ifacesObj;\n};\n\nfunction pageWrite (res){                      \/\/ \u30da\u30fc\u30b8\u63cf\u753b\n    content = ejs.render( template, {\n        title: routes[url_parts.pathname].title,\n        errorMsg: errorMsg,\n        content: ejs.render( routes[url_parts.pathname].content, {\n            message: routes[url_parts.pathname].message,  \/\/ pathname\u306b\u5fdc\u3058\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6307\u5b9a\n            posts: posts,  \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3055\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\n            intent: intent \/\/ \u4eca\u56de\u9078\u3070\u308c\u305f\u30a4\u30f3\u30c6\u30f3\u30c8\n        })\n    });\n    res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n    res.write(content);\n    res.end();\n}\n\nfunction delChk (query, posts, intent){       \/\/ \u524a\u9664\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u756a\u53f7\u304c\u3001\u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u3082\u306e\u304b\u3092\u8abf\u3079\u308b\n    errorMsg = \"\u756a\u53f7\u304c\u9055\u3044\u307e\u3059\";\n    for (var i=0;i &lt; posts.length; i++ ) {\n        if (posts[i][0]==intent &amp;&amp; i==query.delNum){\n            errorMsg = \"\";\n        }\n    }\n    return errorMsg;\n}\n\nfunction readPosts(file){                     \/\/\n    var text = fs.readFileSync(file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    \/\/var text = fs.readFileSync(__dirname + \"\/\" + file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    posts = new CSV(text, {header:false}).parse(); \/\/  TEXT\u3092CSV\u3092\u4ef2\u4ecb\u3057\u3066\u30ea\u30b9\u30c8\u5909\u6570\u306b\u5909\u63db\u3059\u308b\n    return posts;\n}\n\nfunction obj2csv(posts){                     \/\/\n    text = '';\n    for (var i=0;i &lt; posts.length; i++ ) {\n        text = text+posts[i]+'\\n';\n        }\n    return text;\n}\n\nfunction debug(text){                        \/\/\n    \/\/fs.appendFileSync(file_debug, text, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n}\n\n\/\/-------------------------------------------------------------------------------------------------------\n\/\/ \u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\nfunction routing(req, res){ \/\/ request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u3089\u5b9f\u884c\u3055\u308c\u308b\u95a2\u6570\n    url_parts = url.parse(req.url); \/\/ URL\u60c5\u5831\u3092\u30d1\u30fc\u30b9\u51e6\u7406\n    errorMsg = \"\";\n    \/\/ \u60f3\u5b9a\u3057\u3066\u3044\u306a\u3044\u30da\u30fc\u30b8\u306b\u98db\u307c\u3046\u3068\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\n    if (routes[url_parts.pathname] == null){ \/\/ \u30d1\u30b9\u304c\u5909\u6570routes\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u30a8\u30e9\u30fc\u3092\u8868\u793a\u3059\u308b\n        content = \"&lt;h1&gt;NOT FOUND PAGE:\" + req.url + \"&lt;\/h1&gt;\"\n        res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n        res.write(content);\n        res.end();\n        return;\n    }\n    \/\/ GET\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406  -------------------------------------------------------------------------------\n    if (req.method === \"GET\"){\n        if (url_parts.pathname === \"\/editIntent\" || url_parts.pathname === \"\/selectIntent4entity\" || url_parts.pathname === \"\/selectIntent4dialog\"){\n            posts = readPosts(file_chatIntent);\n            pageWrite(res);\n            return;\n        } else if (url_parts.pathname === \"\/editBasic\" || url_parts.pathname === \"\/editTime\" || url_parts.pathname === \"\/editServo\"){ \/\/\n            var json = fs.readFileSync(file_data_chat, \"utf-8\");  \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n            obj_config = JSON.parse(json); \/\/ JSON\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u3002ejs\u304b\u3089\u3082\u8aad\u3081\u308b\u3088\u3046\u306b\u30b0\u30ed\u30fc\u30d0\u30eb\u3067\u5b9a\u7fa9\u3059\u308b\n            pageWrite(res)\n        } else if (url_parts.pathname == \"\/starting_pythonApp\"){ \/\/ Julius\u3068python\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\n            pageWrite(res);\n            debug('restart function start \\n');\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"bash \"+file_restart_app;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n            debug('restart function end \\n');\n        } else if (url_parts.pathname == \"\/reboot\"){ \/\/ \u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = 'sudo reboot';\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/chatMode\"){ \/\/ \u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_chatMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/faceMode\"){ \/\/ \u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_faceMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/disableServer\"){ \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_disableServer;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else {\n            pageWrite(res);\n        }\/\/ end of if\n    } \/\/ end of get request\n    \/\/ POST\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406 -------------------------------------------------------------------------------\n    if (req.method === 'POST') {\n        req.data = \"\";\n        req.on(\"data\", function(data) {\n            req.data += data;\n        });\n        req.on(\"end\", function() {\n            var query = qs.parse(req.data); \/\/ \u5168\u53d7\u4fe1\u30c7\u30fc\u30bf\u3092querry string\u3067\u30d1\u30fc\u30b9\u3059\u308b\u3002\n        \/\/ ----------------------------------------------------------------------------------------------\n            if (url_parts.pathname == \"\/editIntent\"){ \/\/ \u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u7de8\u96c6\n                posts = readPosts(file_chatIntent);\n                if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){\n                        posts.push(['common',query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    } else if(query.delNum &gt;= posts.length) {\n                        errorMsg = \"\u6570\u5b57\u304c\u5927\u304d\u3059\u304e\u307e\u3059\";\n                    } else {\n                        intent = posts[query.delNum][1];\n                        posts = readPosts(file_chatEntity);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatDialog);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8fd4\u7b54\u5019\u88dc\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatIntent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u305f\u3081\u3002\n                }\n                if (errorMsg == \"\"){\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatIntent, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editEntity\"){ \/\/ \u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u7de8\u96c6\n                posts = readPosts(file_chatEntity);\n                if (query.intent){ \/\/ selectIntent\u304b\u3089\u6765\u305f\u5834\u5408\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (i=0;i&lt;query.newItem.length;i++){ \/\/ \u3072\u3089\u304c\u306a\u304b\u30c1\u30a7\u30c3\u30af\n                        var unicode = query.newItem.charCodeAt(i);\n                        if ( unicode&lt;0x3040 || unicode&gt;0x309f ){\n                            if ( unicode != 0x30fc ){ \/\/ chou-on\n                                errorMsg = \"\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u306f\u3072\u3089\u304c\u306a(\u5168\u89d2)\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                            }\n                        }\n                    }\n                    for (var i=0;i &lt; posts.length; i++ ) { \/\/ \u91cd\u8907\u30c1\u30a7\u30c3\u30af\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u8ffd\u52a0\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5024\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{ \/\/ \u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306b\u3072\u3082\u3065\u304f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u304b\u3069\u3046\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                   text = obj2csv(posts);\n                   fs.writeFile(file_chatEntity, text , 'utf8', function (err) {\n                      var COMMAND = 'sudo sed -E \"s\/,\/    \/g\" '+file_chatEntity+' &gt; '+file_chatEntity_tsv; \/\/ csv\u3092tsv\u306b\u5909\u63db\n                      exec(COMMAND, function(error, stdout, stderr) { \/\/ tsv\u30d5\u30a1\u30a4\u30eb\u3092julius\u306edic\u5f62\u5f0f\u306b\u5909\u63db\n                           var COMMAND = 'iconv -f utf8 -t eucjp '+file_chatEntity_tsv+' | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; '+file_chatEntity_dic; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           \/\/ var COMMAND = 'iconv -f utf8 -t eucjp chatEntity.tsv | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; chatEntity.dic'; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           exec(COMMAND, function(error, stdout, stderr) {\n                           });\n                       }); \/\/end of exec\n                   }); \/\/ end of fs\n                } \/\/ end of if\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editDialog\"){ \/\/ \u30c0\u30a4\u30a2\u30ed\u30b0\u306e\u7de8\u96c6\n                posts = readPosts(file_chatDialog);\n                if (query.intent){ \/\/ intent\u3092\u9078\u629e\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\u3002\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\u306e\u5834\u5408\u3002\u91cd\u8907\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3002\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u91cd\u8907\u304c\u306a\u304b\u3063\u305f\u5834\u5408\u3002\u8ffd\u52a0\u3059\u308b\u3002\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5b57\u3058\u3083\u306a\u3044\u5834\u5408\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/\u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatDialog, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n\n            } else if (url_parts.pathname == \"\/setBasic\"){ \/\/ \u57fa\u672c\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data0[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/setTime\"){ \/\/ \u6642\u9593\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data1[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                yearNow=obj_config.data1[0].nowYear;\n                timeNow=obj_config.data1[0].nowTime;\n                console.log(yearNow);\n                console.log(timeNow);\n                var COMMAND = \"sudo date -s '\"+yearNow+\" \"+timeNow+\"'\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else if (url_parts.pathname == \"\/setServo\"){ \/\/ \u30b5\u30fc\u30dc\u8abf\u6574\u306e\u4fdd\u5b58\n                obj_config.data2[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                var COMMAND = \"python bezelie.py\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else { \/\/ \u8a72\u5f53\u305b\u305a\n                res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'});\n                res.write(\"NO-POST!!\");\n                res.end();\n                return;\n            } \/\/ end of if\n        }); \/\/ end of req on\n    } \/\/ end of POST request\n} \/\/ end of doRequest\n\n\/\/ ---------------------------------------------------------------------------------------------------------\n\/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u8a2d\u5b9a\nvar host = getLocalAddress().ipv4[0].address; \/\/ \u73fe\u5728\u306eIP\u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3059\u308b\u3002\ndebug('server_chat.js start \\n');\ndebug(host+'\\n');\n\n\/\/ \u30b5\u30fc\u30d0\u30fc\u306e\u8d77\u52d5\nconsole.log (\"starting node server\");\nvar server = http.createServer(); \/\/ http.server\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u308b\u3002\u623b\u5024\u306fhttp.server\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3002\nserver.on('request', routing);    \/\/ server\u3067request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\u3092\u767b\u9332\nvar port = 3000;                  \/\/ port\u306f1024\u4ee5\u4e0a\u306e\u6570\u5b57\u306a\u3089\u4f55\u3067\u3082\u3088\u3044\u3002\nserver.listen(port, host)         \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u5f85\u3061\u53d7\u3051\u72b6\u614b\u306b\u3059\u308b\u3002\nconsole.log (\"server is listening at \"+host+\":\"+port);\n<\/pre>\n<p>&nbsp;<\/p>\n<h5>ejs\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f<\/h5>\n<pre class=\"height:200 lang:js range:33-54 decode:true\" title=\"server_chat.js\">\/\/ \u3079\u30bc\u30ea\u30fc\u8a2d\u5b9aWeb\u30a2\u30d7\u30ea\n\/\/ for Bezelie Edgar\n\/\/ in Node-JS\n\/\/ by Jun Toyoda (Team Bezelie)\n\/\/ From  Aug 10th 2017\n\/\/ ---------------------------------------------------------------------------------\n\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30ed\u30fc\u30c9\u3057\u3066\u5909\u6570\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066\u8aad\u307f\u8fbc\u3080\nvar http = require('http'); \/\/ http\u30a2\u30af\u30bb\u30b9\u306e\u305f\u3081\u306e\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   http.createServer(function);\nvar fs   = require('fs');   \/\/ \u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u64cd\u4f5c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   fs.readFile('file name','utf-8',callback function)\n                            \/\/   fs.readFileSync('file name','utf-8')\nvar ejs  = require('ejs');  \/\/ JS\u7528\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30a8\u30f3\u30b8\u30f3ejs(Embedded JavaScript Templates)\n                            \/\/    ejs.render(\u5909\u6570\u306b\u4ee3\u5165\u3055\u308c\u305fejs, \u7f6e\u63db\u30c7\u30fc\u30bf\u30aa\u30d6\u30b8\u30a7\u30af\u30c8);\nvar url  = require('url');  \/\/ URL\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3084\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    url.parse(request.url);\nvar qs   = require('querystring');\n                            \/\/ \u30af\u30a8\u30ea\u30fc\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3057\u3066\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    qs.parse();\nvar exec = require('child_process').exec;\n                            \/\/ \u5b50\u30d7\u30ed\u30bb\u30b9\u306e\u751f\u6210\u3068\u7ba1\u7406\u3092\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3002\n                            \/\/    exec(COMMAND, [options], callback(error, stdout, stderr) {}\n                            \/\/    option maxBuffer:\u30d0\u30c3\u30d5\u30a1\u306e\u6700\u5927\u5bb9\u91cf(byte)\n                            \/\/    error :\u30a8\u30e9\u30fc\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n                            \/\/    stdout:\u6a19\u6e96\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\n                            \/\/    stderr:\u6a19\u6e96\u30a8\u30e9\u30fc\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\nvar CSV  = require(\"comma-separated-values\");\n                            \/\/ CSV\u3092\u914d\u5217\u5909\u6570\u3084\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\nvar os   = require('os');\n                            \/\/    os.networkInterfaces();\nvar sleep = require('sleep');\n                            \/\/ \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\u7528\u30e2\u30b8\u30e5\u30fc\u30eb\n\/\/ ejs\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nvar template            = fs.readFileSync(__dirname + '\/ejs\/template.ejs', 'utf-8');\nvar top                 = fs.readFileSync(__dirname + '\/ejs\/top.ejs', 'utf-8');\nvar editBasic           = fs.readFileSync(__dirname + '\/ejs\/editBasic.ejs', 'utf-8');\nvar editChat            = fs.readFileSync(__dirname + '\/ejs\/editChat.ejs', 'utf-8');\nvar editTime            = fs.readFileSync(__dirname + '\/ejs\/editTime.ejs', 'utf-8');\nvar editServo           = fs.readFileSync(__dirname + '\/ejs\/editServo.ejs', 'utf-8');\nvar setBasic            = fs.readFileSync(__dirname + '\/ejs\/setBasic.ejs', 'utf-8');\nvar setTime             = fs.readFileSync(__dirname + '\/ejs\/setTime.ejs', 'utf-8');\nvar setServo            = fs.readFileSync(__dirname + '\/ejs\/setServo.ejs', 'utf-8');\nvar editIntent          = fs.readFileSync(__dirname + '\/ejs\/editIntent.ejs', 'utf-8');\nvar selectIntent4entity = fs.readFileSync(__dirname + '\/ejs\/selectIntent4entity.ejs', 'utf-8');\nvar editEntity          = fs.readFileSync(__dirname + '\/ejs\/editEntity.ejs', 'utf-8');\nvar selectIntent4dialog = fs.readFileSync(__dirname + '\/ejs\/selectIntent4dialog.ejs', 'utf-8');\nvar editDialog          = fs.readFileSync(__dirname + '\/ejs\/editDialog.ejs', 'utf-8');\nvar starting_pythonApp  = fs.readFileSync(__dirname + '\/ejs\/starting_pythonApp.ejs', 'utf-8');\nvar reboot              = fs.readFileSync(__dirname + '\/ejs\/reboot.ejs', 'utf-8');\nvar chatMode            = fs.readFileSync(__dirname + '\/ejs\/chatMode.ejs', 'utf-8');\nvar faceMode            = fs.readFileSync(__dirname + '\/ejs\/faceMode.ejs', 'utf-8');\nvar disableServer       = fs.readFileSync(__dirname + '\/ejs\/disableServer.ejs', 'utf-8');\nvar test                = fs.readFileSync(__dirname + '\/ejs\/test.ejs', 'utf-8');\n\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar routes = { \/\/ \u30d1\u30b9\u3054\u3068\u306e\u8868\u793a\u5185\u5bb9\u3092\u9023\u60f3\u914d\u5217\u306b\u683c\u7d0d\n    \"\/\":{\n        \"title\":\"BEZELIE\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u8a2d\u5b9a\u30c7\u30fc\u30bf\u306e\u7de8\u96c6\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":top}, \/\/ \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\n    \"\/editBasic\":{\n        \"title\":\"\u57fa\u672c\u8a2d\u5b9a\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u306e\u57fa\u672c\u7684\u306a\u8a2d\u5b9a\u3092\u884c\u3044\u307e\u3059\",\n        \"content\":editBasic},\n    \"\/editChat\":{\n        \"title\":\"\u5bfe\u8a71\u8a2d\u5b9a\",\n        \"message\":\"\uff13\u7a2e\u985e\u306e\u30c7\u30fc\u30bf\u3092\u7de8\u96c6\u3059\u308b\u3053\u3068\u3067\u3001\u5bfe\u8a71\u3092\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":editChat},\n    \"\/editTime\":{\n        \"title\":\"\u6642\u9593\u8a2d\u5b9a\",\n        \"message\":\"\u30a2\u30e9\u30fc\u30e0\u3068\u6d3b\u52d5\u6642\u9593\u306e\u8a2d\u5b9a\u3092\u3057\u307e\u3059\",\n        \"content\":editTime},\n    \"\/editServo\":{\n        \"title\":\"\u30b5\u30fc\u30dc\u8abf\u6574\",\n        \"message\":\"\u30b5\u30fc\u30dc\u306e\u521d\u671f\u4f4d\u7f6e\uff08\u89d2\u5ea6\uff09\u3092\u8abf\u6574\u3057\u307e\u3059\u3002\u5358\u4f4d\u306f\u5ea6\u3067\u3059\u3002\u30b5\u30fc\u30dc\u3092\u4e0a\u304b\u3089\u898b\u3066\u6642\u8a08\u56de\u308a\u304c\u6b63\u306e\u5024\u306b\u306a\u308a\u307e\u3059\",\n        \"content\":editServo},\n    \"\/chatMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/faceMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/disableServer\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u306b\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/editIntent\":{\n        \"title\":\"\u3010\u8cea\u554f\u5185\u5bb9\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u5185\u5bb9\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u805e\u304d\u305f\u3044\u5185\u5bb9\u306e\u3053\u3068\u3067\u3059\u3002\u3053\u306e\u6587\u5b57\u304c\u97f3\u58f0\u8a8d\u8b58\u3055\u308c\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u306e\u3067\u3001\u308f\u304b\u308a\u3084\u3059\u3044\u540d\u79f0\u3092\u3064\u3051\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editIntent},\n    \"\/selectIntent4entity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u671b\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":selectIntent4entity},\n    \"\/editEntity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u306e\u8272\u3005\u306a\u8a00\u3044\u56de\u3057\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u306e\u8a00\u3044\u56de\u3057\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u8cea\u554f\u3059\u308b\u969b\u306e\u3001\u3055\u307e\u3056\u307e\u306a\u8a00\u3044\u304b\u305f\u306e\u3053\u3068\u3067\u3059\u3002\u3072\u3089\u304c\u306a\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editEntity},\n    \"\/selectIntent4dialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u597d\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n        \"content\":selectIntent4dialog},\n    \"\/editDialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8fd4\u7b54\u5019\u88dc\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8fd4\u7b54\u5019\u88dc\u3068\u306f\u30e6\u30fc\u30b6\u30fc\u304b\u3089\u306e\u8cea\u554f\u306b\u5bfe\u3059\u308b\u3079\u30bc\u30ea\u30fc\u304b\u3089\u306e\u8fd4\u7b54\u306e\u5019\u88dc\u3067\u3059\u3002\u8907\u6570\u306e\u8fd4\u7b54\u3092\u8a2d\u5b9a\u3057\u305f\u5834\u5408\u306f\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u3070\u308c\u307e\u3059\u3002\",\n        \"content\":editDialog},\n    \"\/reboot\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":reboot},\n    \"\/starting_pythonApp\":{\n        \"title\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":starting_pythonApp},\n    \"\/setBasic\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setBasic},\n    \"\/setTime\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setTime},\n    \"\/setServo\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setServo},\n    \"\/test\":{\n        \"title\":\"\u30c6\u30b9\u30c8\",\n        \"message\":\"\u3053\u308c\u306f\u30c6\u30b9\u30c8\u7528\u306e\u30da\u30fc\u30b8\u3067\u3059\",\n        \"content\":test}\n};\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar file_chatIntent            = \"\/home\/pi\/bezelie\/chatIntent.csv\";\nvar file_chatEntity            = \"\/home\/pi\/bezelie\/chatEntity.csv\";\nvar file_chatDialog            = \"\/home\/pi\/bezelie\/chatDialog.csv\";\nvar file_chatEntity_tsv        = \"\/home\/pi\/bezelie\/chatEntity.tsv\";\nvar file_chatEntity_dic        = \"\/home\/pi\/bezelie\/chatEntity.dic\";\nvar file_debug                 = \"\/home\/pi\/bezelie\/debug.txt\";\nvar file_data_chat             = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\";\nvar file_restart_app           = \"\/home\/pi\/bezelie\/edgar\/restart_app.sh\";\nvar file_exec_talk             = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\";\nvar file_setting_chatMode      = \"\/home\/pi\/bezelie\/edgar\/setting_chatMode.sh\";\nvar file_setting_faceMode      = \"\/home\/pi\/bezelie\/edgar\/setting_faceMode.sh\";\nvar file_setting_disableServer = \"\/home\/pi\/bezelie\/edgar\/setting_disableServer.sh\";\nvar errorMsg = \"\"; \/\/ \u3053\u308c\u304c\u7a7a\u6b04\u306e\u3068\u304d\u306f\u30a8\u30e9\u30fc\u7121\u3057\nvar posts = \"\";    \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3067\u9001\u3089\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\nvar intent = \"\";   \/\/ \u4eca\u56de\u9078\u629e\u3055\u308c\u305fintent\uff08\u5358\u6570\uff09\n\n\/\/ \u95a2\u6570\u5b9a\u7fa9\nfunction getLocalAddress() {                    \/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u53d6\u5f97\n    var ifacesObj = {}\n    ifacesObj.ipv4 = [];\n    ifacesObj.ipv6 = [];\n    var interfaces = os.networkInterfaces();\n\n    for (var dev in interfaces) {\n        interfaces[dev].forEach(function(details){\n            if (!details.internal){\n                switch(details.family){\n                    case \"IPv4\":\n                        ifacesObj.ipv4.push({name:dev, address:details.address});\n                    break;\n                    case \"IPv6\":\n                        ifacesObj.ipv6.push({name:dev, address:details.address})\n                    break;\n                }\n            }\n        });\n    }\n    return ifacesObj;\n};\n\nfunction pageWrite (res){                      \/\/ \u30da\u30fc\u30b8\u63cf\u753b\n    content = ejs.render( template, {\n        title: routes[url_parts.pathname].title,\n        errorMsg: errorMsg,\n        content: ejs.render( routes[url_parts.pathname].content, {\n            message: routes[url_parts.pathname].message,  \/\/ pathname\u306b\u5fdc\u3058\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6307\u5b9a\n            posts: posts,  \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3055\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\n            intent: intent \/\/ \u4eca\u56de\u9078\u3070\u308c\u305f\u30a4\u30f3\u30c6\u30f3\u30c8\n        })\n    });\n    res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n    res.write(content);\n    res.end();\n}\n\nfunction delChk (query, posts, intent){       \/\/ \u524a\u9664\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u756a\u53f7\u304c\u3001\u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u3082\u306e\u304b\u3092\u8abf\u3079\u308b\n    errorMsg = \"\u756a\u53f7\u304c\u9055\u3044\u307e\u3059\";\n    for (var i=0;i &lt; posts.length; i++ ) {\n        if (posts[i][0]==intent &amp;&amp; i==query.delNum){\n            errorMsg = \"\";\n        }\n    }\n    return errorMsg;\n}\n\nfunction readPosts(file){                     \/\/\n    var text = fs.readFileSync(file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    \/\/var text = fs.readFileSync(__dirname + \"\/\" + file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    posts = new CSV(text, {header:false}).parse(); \/\/  TEXT\u3092CSV\u3092\u4ef2\u4ecb\u3057\u3066\u30ea\u30b9\u30c8\u5909\u6570\u306b\u5909\u63db\u3059\u308b\n    return posts;\n}\n\nfunction obj2csv(posts){                     \/\/\n    text = '';\n    for (var i=0;i &lt; posts.length; i++ ) {\n        text = text+posts[i]+'\\n';\n        }\n    return text;\n}\n\nfunction debug(text){                        \/\/\n    \/\/fs.appendFileSync(file_debug, text, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n}\n\n\/\/-------------------------------------------------------------------------------------------------------\n\/\/ \u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\nfunction routing(req, res){ \/\/ request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u3089\u5b9f\u884c\u3055\u308c\u308b\u95a2\u6570\n    url_parts = url.parse(req.url); \/\/ URL\u60c5\u5831\u3092\u30d1\u30fc\u30b9\u51e6\u7406\n    errorMsg = \"\";\n    \/\/ \u60f3\u5b9a\u3057\u3066\u3044\u306a\u3044\u30da\u30fc\u30b8\u306b\u98db\u307c\u3046\u3068\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\n    if (routes[url_parts.pathname] == null){ \/\/ \u30d1\u30b9\u304c\u5909\u6570routes\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u30a8\u30e9\u30fc\u3092\u8868\u793a\u3059\u308b\n        content = \"&lt;h1&gt;NOT FOUND PAGE:\" + req.url + \"&lt;\/h1&gt;\"\n        res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n        res.write(content);\n        res.end();\n        return;\n    }\n    \/\/ GET\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406  -------------------------------------------------------------------------------\n    if (req.method === \"GET\"){\n        if (url_parts.pathname === \"\/editIntent\" || url_parts.pathname === \"\/selectIntent4entity\" || url_parts.pathname === \"\/selectIntent4dialog\"){\n            posts = readPosts(file_chatIntent);\n            pageWrite(res);\n            return;\n        } else if (url_parts.pathname === \"\/editBasic\" || url_parts.pathname === \"\/editTime\" || url_parts.pathname === \"\/editServo\"){ \/\/\n            var json = fs.readFileSync(file_data_chat, \"utf-8\");  \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n            obj_config = JSON.parse(json); \/\/ JSON\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u3002ejs\u304b\u3089\u3082\u8aad\u3081\u308b\u3088\u3046\u306b\u30b0\u30ed\u30fc\u30d0\u30eb\u3067\u5b9a\u7fa9\u3059\u308b\n            pageWrite(res)\n        } else if (url_parts.pathname == \"\/starting_pythonApp\"){ \/\/ Julius\u3068python\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\n            pageWrite(res);\n            debug('restart function start \\n');\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"bash \"+file_restart_app;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n            debug('restart function end \\n');\n        } else if (url_parts.pathname == \"\/reboot\"){ \/\/ \u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = 'sudo reboot';\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/chatMode\"){ \/\/ \u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_chatMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/faceMode\"){ \/\/ \u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_faceMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/disableServer\"){ \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_disableServer;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else {\n            pageWrite(res);\n        }\/\/ end of if\n    } \/\/ end of get request\n    \/\/ POST\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406 -------------------------------------------------------------------------------\n    if (req.method === 'POST') {\n        req.data = \"\";\n        req.on(\"data\", function(data) {\n            req.data += data;\n        });\n        req.on(\"end\", function() {\n            var query = qs.parse(req.data); \/\/ \u5168\u53d7\u4fe1\u30c7\u30fc\u30bf\u3092querry string\u3067\u30d1\u30fc\u30b9\u3059\u308b\u3002\n        \/\/ ----------------------------------------------------------------------------------------------\n            if (url_parts.pathname == \"\/editIntent\"){ \/\/ \u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u7de8\u96c6\n                posts = readPosts(file_chatIntent);\n                if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){\n                        posts.push(['common',query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    } else if(query.delNum &gt;= posts.length) {\n                        errorMsg = \"\u6570\u5b57\u304c\u5927\u304d\u3059\u304e\u307e\u3059\";\n                    } else {\n                        intent = posts[query.delNum][1];\n                        posts = readPosts(file_chatEntity);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatDialog);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8fd4\u7b54\u5019\u88dc\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatIntent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u305f\u3081\u3002\n                }\n                if (errorMsg == \"\"){\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatIntent, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editEntity\"){ \/\/ \u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u7de8\u96c6\n                posts = readPosts(file_chatEntity);\n                if (query.intent){ \/\/ selectIntent\u304b\u3089\u6765\u305f\u5834\u5408\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (i=0;i&lt;query.newItem.length;i++){ \/\/ \u3072\u3089\u304c\u306a\u304b\u30c1\u30a7\u30c3\u30af\n                        var unicode = query.newItem.charCodeAt(i);\n                        if ( unicode&lt;0x3040 || unicode&gt;0x309f ){\n                            if ( unicode != 0x30fc ){ \/\/ chou-on\n                                errorMsg = \"\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u306f\u3072\u3089\u304c\u306a(\u5168\u89d2)\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                            }\n                        }\n                    }\n                    for (var i=0;i &lt; posts.length; i++ ) { \/\/ \u91cd\u8907\u30c1\u30a7\u30c3\u30af\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u8ffd\u52a0\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5024\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{ \/\/ \u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306b\u3072\u3082\u3065\u304f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u304b\u3069\u3046\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                   text = obj2csv(posts);\n                   fs.writeFile(file_chatEntity, text , 'utf8', function (err) {\n                      var COMMAND = 'sudo sed -E \"s\/,\/    \/g\" '+file_chatEntity+' &gt; '+file_chatEntity_tsv; \/\/ csv\u3092tsv\u306b\u5909\u63db\n                      exec(COMMAND, function(error, stdout, stderr) { \/\/ tsv\u30d5\u30a1\u30a4\u30eb\u3092julius\u306edic\u5f62\u5f0f\u306b\u5909\u63db\n                           var COMMAND = 'iconv -f utf8 -t eucjp '+file_chatEntity_tsv+' | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; '+file_chatEntity_dic; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           \/\/ var COMMAND = 'iconv -f utf8 -t eucjp chatEntity.tsv | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; chatEntity.dic'; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           exec(COMMAND, function(error, stdout, stderr) {\n                           });\n                       }); \/\/end of exec\n                   }); \/\/ end of fs\n                } \/\/ end of if\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editDialog\"){ \/\/ \u30c0\u30a4\u30a2\u30ed\u30b0\u306e\u7de8\u96c6\n                posts = readPosts(file_chatDialog);\n                if (query.intent){ \/\/ intent\u3092\u9078\u629e\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\u3002\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\u306e\u5834\u5408\u3002\u91cd\u8907\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3002\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u91cd\u8907\u304c\u306a\u304b\u3063\u305f\u5834\u5408\u3002\u8ffd\u52a0\u3059\u308b\u3002\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5b57\u3058\u3083\u306a\u3044\u5834\u5408\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/\u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatDialog, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n\n            } else if (url_parts.pathname == \"\/setBasic\"){ \/\/ \u57fa\u672c\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data0[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/setTime\"){ \/\/ \u6642\u9593\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data1[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                yearNow=obj_config.data1[0].nowYear;\n                timeNow=obj_config.data1[0].nowTime;\n                console.log(yearNow);\n                console.log(timeNow);\n                var COMMAND = \"sudo date -s '\"+yearNow+\" \"+timeNow+\"'\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else if (url_parts.pathname == \"\/setServo\"){ \/\/ \u30b5\u30fc\u30dc\u8abf\u6574\u306e\u4fdd\u5b58\n                obj_config.data2[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                var COMMAND = \"python bezelie.py\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else { \/\/ \u8a72\u5f53\u305b\u305a\n                res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'});\n                res.write(\"NO-POST!!\");\n                res.end();\n                return;\n            } \/\/ end of if\n        }); \/\/ end of req on\n    } \/\/ end of POST request\n} \/\/ end of doRequest\n\n\/\/ ---------------------------------------------------------------------------------------------------------\n\/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u8a2d\u5b9a\nvar host = getLocalAddress().ipv4[0].address; \/\/ \u73fe\u5728\u306eIP\u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3059\u308b\u3002\ndebug('server_chat.js start \\n');\ndebug(host+'\\n');\n\n\/\/ \u30b5\u30fc\u30d0\u30fc\u306e\u8d77\u52d5\nconsole.log (\"starting node server\");\nvar server = http.createServer(); \/\/ http.server\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u308b\u3002\u623b\u5024\u306fhttp.server\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3002\nserver.on('request', routing);    \/\/ server\u3067request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\u3092\u767b\u9332\nvar port = 3000;                  \/\/ port\u306f1024\u4ee5\u4e0a\u306e\u6570\u5b57\u306a\u3089\u4f55\u3067\u3082\u3088\u3044\u3002\nserver.listen(port, host)         \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u5f85\u3061\u53d7\u3051\u72b6\u614b\u306b\u3059\u308b\u3002\nconsole.log (\"server is listening at \"+host+\":\"+port);\n<\/pre>\n<h5>\u5909\u6570\u5ba3\u8a00\uff08ejs\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u7528\uff09<\/h5>\n<pre class=\"height:200 lang:js range:55-133 decode:true\" title=\"server_chat.js\">\/\/ \u3079\u30bc\u30ea\u30fc\u8a2d\u5b9aWeb\u30a2\u30d7\u30ea\n\/\/ for Bezelie Edgar\n\/\/ in Node-JS\n\/\/ by Jun Toyoda (Team Bezelie)\n\/\/ From  Aug 10th 2017\n\/\/ ---------------------------------------------------------------------------------\n\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30ed\u30fc\u30c9\u3057\u3066\u5909\u6570\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066\u8aad\u307f\u8fbc\u3080\nvar http = require('http'); \/\/ http\u30a2\u30af\u30bb\u30b9\u306e\u305f\u3081\u306e\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   http.createServer(function);\nvar fs   = require('fs');   \/\/ \u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u64cd\u4f5c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   fs.readFile('file name','utf-8',callback function)\n                            \/\/   fs.readFileSync('file name','utf-8')\nvar ejs  = require('ejs');  \/\/ JS\u7528\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30a8\u30f3\u30b8\u30f3ejs(Embedded JavaScript Templates)\n                            \/\/    ejs.render(\u5909\u6570\u306b\u4ee3\u5165\u3055\u308c\u305fejs, \u7f6e\u63db\u30c7\u30fc\u30bf\u30aa\u30d6\u30b8\u30a7\u30af\u30c8);\nvar url  = require('url');  \/\/ URL\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3084\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    url.parse(request.url);\nvar qs   = require('querystring');\n                            \/\/ \u30af\u30a8\u30ea\u30fc\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3057\u3066\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    qs.parse();\nvar exec = require('child_process').exec;\n                            \/\/ \u5b50\u30d7\u30ed\u30bb\u30b9\u306e\u751f\u6210\u3068\u7ba1\u7406\u3092\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3002\n                            \/\/    exec(COMMAND, [options], callback(error, stdout, stderr) {}\n                            \/\/    option maxBuffer:\u30d0\u30c3\u30d5\u30a1\u306e\u6700\u5927\u5bb9\u91cf(byte)\n                            \/\/    error :\u30a8\u30e9\u30fc\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n                            \/\/    stdout:\u6a19\u6e96\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\n                            \/\/    stderr:\u6a19\u6e96\u30a8\u30e9\u30fc\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\nvar CSV  = require(\"comma-separated-values\");\n                            \/\/ CSV\u3092\u914d\u5217\u5909\u6570\u3084\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\nvar os   = require('os');\n                            \/\/    os.networkInterfaces();\nvar sleep = require('sleep');\n                            \/\/ \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\u7528\u30e2\u30b8\u30e5\u30fc\u30eb\n\/\/ ejs\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nvar template            = fs.readFileSync(__dirname + '\/ejs\/template.ejs', 'utf-8');\nvar top                 = fs.readFileSync(__dirname + '\/ejs\/top.ejs', 'utf-8');\nvar editBasic           = fs.readFileSync(__dirname + '\/ejs\/editBasic.ejs', 'utf-8');\nvar editChat            = fs.readFileSync(__dirname + '\/ejs\/editChat.ejs', 'utf-8');\nvar editTime            = fs.readFileSync(__dirname + '\/ejs\/editTime.ejs', 'utf-8');\nvar editServo           = fs.readFileSync(__dirname + '\/ejs\/editServo.ejs', 'utf-8');\nvar setBasic            = fs.readFileSync(__dirname + '\/ejs\/setBasic.ejs', 'utf-8');\nvar setTime             = fs.readFileSync(__dirname + '\/ejs\/setTime.ejs', 'utf-8');\nvar setServo            = fs.readFileSync(__dirname + '\/ejs\/setServo.ejs', 'utf-8');\nvar editIntent          = fs.readFileSync(__dirname + '\/ejs\/editIntent.ejs', 'utf-8');\nvar selectIntent4entity = fs.readFileSync(__dirname + '\/ejs\/selectIntent4entity.ejs', 'utf-8');\nvar editEntity          = fs.readFileSync(__dirname + '\/ejs\/editEntity.ejs', 'utf-8');\nvar selectIntent4dialog = fs.readFileSync(__dirname + '\/ejs\/selectIntent4dialog.ejs', 'utf-8');\nvar editDialog          = fs.readFileSync(__dirname + '\/ejs\/editDialog.ejs', 'utf-8');\nvar starting_pythonApp  = fs.readFileSync(__dirname + '\/ejs\/starting_pythonApp.ejs', 'utf-8');\nvar reboot              = fs.readFileSync(__dirname + '\/ejs\/reboot.ejs', 'utf-8');\nvar chatMode            = fs.readFileSync(__dirname + '\/ejs\/chatMode.ejs', 'utf-8');\nvar faceMode            = fs.readFileSync(__dirname + '\/ejs\/faceMode.ejs', 'utf-8');\nvar disableServer       = fs.readFileSync(__dirname + '\/ejs\/disableServer.ejs', 'utf-8');\nvar test                = fs.readFileSync(__dirname + '\/ejs\/test.ejs', 'utf-8');\n\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar routes = { \/\/ \u30d1\u30b9\u3054\u3068\u306e\u8868\u793a\u5185\u5bb9\u3092\u9023\u60f3\u914d\u5217\u306b\u683c\u7d0d\n    \"\/\":{\n        \"title\":\"BEZELIE\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u8a2d\u5b9a\u30c7\u30fc\u30bf\u306e\u7de8\u96c6\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":top}, \/\/ \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\n    \"\/editBasic\":{\n        \"title\":\"\u57fa\u672c\u8a2d\u5b9a\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u306e\u57fa\u672c\u7684\u306a\u8a2d\u5b9a\u3092\u884c\u3044\u307e\u3059\",\n        \"content\":editBasic},\n    \"\/editChat\":{\n        \"title\":\"\u5bfe\u8a71\u8a2d\u5b9a\",\n        \"message\":\"\uff13\u7a2e\u985e\u306e\u30c7\u30fc\u30bf\u3092\u7de8\u96c6\u3059\u308b\u3053\u3068\u3067\u3001\u5bfe\u8a71\u3092\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":editChat},\n    \"\/editTime\":{\n        \"title\":\"\u6642\u9593\u8a2d\u5b9a\",\n        \"message\":\"\u30a2\u30e9\u30fc\u30e0\u3068\u6d3b\u52d5\u6642\u9593\u306e\u8a2d\u5b9a\u3092\u3057\u307e\u3059\",\n        \"content\":editTime},\n    \"\/editServo\":{\n        \"title\":\"\u30b5\u30fc\u30dc\u8abf\u6574\",\n        \"message\":\"\u30b5\u30fc\u30dc\u306e\u521d\u671f\u4f4d\u7f6e\uff08\u89d2\u5ea6\uff09\u3092\u8abf\u6574\u3057\u307e\u3059\u3002\u5358\u4f4d\u306f\u5ea6\u3067\u3059\u3002\u30b5\u30fc\u30dc\u3092\u4e0a\u304b\u3089\u898b\u3066\u6642\u8a08\u56de\u308a\u304c\u6b63\u306e\u5024\u306b\u306a\u308a\u307e\u3059\",\n        \"content\":editServo},\n    \"\/chatMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/faceMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/disableServer\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u306b\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/editIntent\":{\n        \"title\":\"\u3010\u8cea\u554f\u5185\u5bb9\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u5185\u5bb9\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u805e\u304d\u305f\u3044\u5185\u5bb9\u306e\u3053\u3068\u3067\u3059\u3002\u3053\u306e\u6587\u5b57\u304c\u97f3\u58f0\u8a8d\u8b58\u3055\u308c\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u306e\u3067\u3001\u308f\u304b\u308a\u3084\u3059\u3044\u540d\u79f0\u3092\u3064\u3051\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editIntent},\n    \"\/selectIntent4entity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u671b\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":selectIntent4entity},\n    \"\/editEntity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u306e\u8272\u3005\u306a\u8a00\u3044\u56de\u3057\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u306e\u8a00\u3044\u56de\u3057\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u8cea\u554f\u3059\u308b\u969b\u306e\u3001\u3055\u307e\u3056\u307e\u306a\u8a00\u3044\u304b\u305f\u306e\u3053\u3068\u3067\u3059\u3002\u3072\u3089\u304c\u306a\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editEntity},\n    \"\/selectIntent4dialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u597d\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n        \"content\":selectIntent4dialog},\n    \"\/editDialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8fd4\u7b54\u5019\u88dc\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8fd4\u7b54\u5019\u88dc\u3068\u306f\u30e6\u30fc\u30b6\u30fc\u304b\u3089\u306e\u8cea\u554f\u306b\u5bfe\u3059\u308b\u3079\u30bc\u30ea\u30fc\u304b\u3089\u306e\u8fd4\u7b54\u306e\u5019\u88dc\u3067\u3059\u3002\u8907\u6570\u306e\u8fd4\u7b54\u3092\u8a2d\u5b9a\u3057\u305f\u5834\u5408\u306f\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u3070\u308c\u307e\u3059\u3002\",\n        \"content\":editDialog},\n    \"\/reboot\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":reboot},\n    \"\/starting_pythonApp\":{\n        \"title\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":starting_pythonApp},\n    \"\/setBasic\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setBasic},\n    \"\/setTime\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setTime},\n    \"\/setServo\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setServo},\n    \"\/test\":{\n        \"title\":\"\u30c6\u30b9\u30c8\",\n        \"message\":\"\u3053\u308c\u306f\u30c6\u30b9\u30c8\u7528\u306e\u30da\u30fc\u30b8\u3067\u3059\",\n        \"content\":test}\n};\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar file_chatIntent            = \"\/home\/pi\/bezelie\/chatIntent.csv\";\nvar file_chatEntity            = \"\/home\/pi\/bezelie\/chatEntity.csv\";\nvar file_chatDialog            = \"\/home\/pi\/bezelie\/chatDialog.csv\";\nvar file_chatEntity_tsv        = \"\/home\/pi\/bezelie\/chatEntity.tsv\";\nvar file_chatEntity_dic        = \"\/home\/pi\/bezelie\/chatEntity.dic\";\nvar file_debug                 = \"\/home\/pi\/bezelie\/debug.txt\";\nvar file_data_chat             = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\";\nvar file_restart_app           = \"\/home\/pi\/bezelie\/edgar\/restart_app.sh\";\nvar file_exec_talk             = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\";\nvar file_setting_chatMode      = \"\/home\/pi\/bezelie\/edgar\/setting_chatMode.sh\";\nvar file_setting_faceMode      = \"\/home\/pi\/bezelie\/edgar\/setting_faceMode.sh\";\nvar file_setting_disableServer = \"\/home\/pi\/bezelie\/edgar\/setting_disableServer.sh\";\nvar errorMsg = \"\"; \/\/ \u3053\u308c\u304c\u7a7a\u6b04\u306e\u3068\u304d\u306f\u30a8\u30e9\u30fc\u7121\u3057\nvar posts = \"\";    \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3067\u9001\u3089\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\nvar intent = \"\";   \/\/ \u4eca\u56de\u9078\u629e\u3055\u308c\u305fintent\uff08\u5358\u6570\uff09\n\n\/\/ \u95a2\u6570\u5b9a\u7fa9\nfunction getLocalAddress() {                    \/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u53d6\u5f97\n    var ifacesObj = {}\n    ifacesObj.ipv4 = [];\n    ifacesObj.ipv6 = [];\n    var interfaces = os.networkInterfaces();\n\n    for (var dev in interfaces) {\n        interfaces[dev].forEach(function(details){\n            if (!details.internal){\n                switch(details.family){\n                    case \"IPv4\":\n                        ifacesObj.ipv4.push({name:dev, address:details.address});\n                    break;\n                    case \"IPv6\":\n                        ifacesObj.ipv6.push({name:dev, address:details.address})\n                    break;\n                }\n            }\n        });\n    }\n    return ifacesObj;\n};\n\nfunction pageWrite (res){                      \/\/ \u30da\u30fc\u30b8\u63cf\u753b\n    content = ejs.render( template, {\n        title: routes[url_parts.pathname].title,\n        errorMsg: errorMsg,\n        content: ejs.render( routes[url_parts.pathname].content, {\n            message: routes[url_parts.pathname].message,  \/\/ pathname\u306b\u5fdc\u3058\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6307\u5b9a\n            posts: posts,  \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3055\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\n            intent: intent \/\/ \u4eca\u56de\u9078\u3070\u308c\u305f\u30a4\u30f3\u30c6\u30f3\u30c8\n        })\n    });\n    res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n    res.write(content);\n    res.end();\n}\n\nfunction delChk (query, posts, intent){       \/\/ \u524a\u9664\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u756a\u53f7\u304c\u3001\u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u3082\u306e\u304b\u3092\u8abf\u3079\u308b\n    errorMsg = \"\u756a\u53f7\u304c\u9055\u3044\u307e\u3059\";\n    for (var i=0;i &lt; posts.length; i++ ) {\n        if (posts[i][0]==intent &amp;&amp; i==query.delNum){\n            errorMsg = \"\";\n        }\n    }\n    return errorMsg;\n}\n\nfunction readPosts(file){                     \/\/\n    var text = fs.readFileSync(file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    \/\/var text = fs.readFileSync(__dirname + \"\/\" + file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    posts = new CSV(text, {header:false}).parse(); \/\/  TEXT\u3092CSV\u3092\u4ef2\u4ecb\u3057\u3066\u30ea\u30b9\u30c8\u5909\u6570\u306b\u5909\u63db\u3059\u308b\n    return posts;\n}\n\nfunction obj2csv(posts){                     \/\/\n    text = '';\n    for (var i=0;i &lt; posts.length; i++ ) {\n        text = text+posts[i]+'\\n';\n        }\n    return text;\n}\n\nfunction debug(text){                        \/\/\n    \/\/fs.appendFileSync(file_debug, text, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n}\n\n\/\/-------------------------------------------------------------------------------------------------------\n\/\/ \u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\nfunction routing(req, res){ \/\/ request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u3089\u5b9f\u884c\u3055\u308c\u308b\u95a2\u6570\n    url_parts = url.parse(req.url); \/\/ URL\u60c5\u5831\u3092\u30d1\u30fc\u30b9\u51e6\u7406\n    errorMsg = \"\";\n    \/\/ \u60f3\u5b9a\u3057\u3066\u3044\u306a\u3044\u30da\u30fc\u30b8\u306b\u98db\u307c\u3046\u3068\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\n    if (routes[url_parts.pathname] == null){ \/\/ \u30d1\u30b9\u304c\u5909\u6570routes\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u30a8\u30e9\u30fc\u3092\u8868\u793a\u3059\u308b\n        content = \"&lt;h1&gt;NOT FOUND PAGE:\" + req.url + \"&lt;\/h1&gt;\"\n        res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n        res.write(content);\n        res.end();\n        return;\n    }\n    \/\/ GET\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406  -------------------------------------------------------------------------------\n    if (req.method === \"GET\"){\n        if (url_parts.pathname === \"\/editIntent\" || url_parts.pathname === \"\/selectIntent4entity\" || url_parts.pathname === \"\/selectIntent4dialog\"){\n            posts = readPosts(file_chatIntent);\n            pageWrite(res);\n            return;\n        } else if (url_parts.pathname === \"\/editBasic\" || url_parts.pathname === \"\/editTime\" || url_parts.pathname === \"\/editServo\"){ \/\/\n            var json = fs.readFileSync(file_data_chat, \"utf-8\");  \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n            obj_config = JSON.parse(json); \/\/ JSON\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u3002ejs\u304b\u3089\u3082\u8aad\u3081\u308b\u3088\u3046\u306b\u30b0\u30ed\u30fc\u30d0\u30eb\u3067\u5b9a\u7fa9\u3059\u308b\n            pageWrite(res)\n        } else if (url_parts.pathname == \"\/starting_pythonApp\"){ \/\/ Julius\u3068python\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\n            pageWrite(res);\n            debug('restart function start \\n');\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"bash \"+file_restart_app;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n            debug('restart function end \\n');\n        } else if (url_parts.pathname == \"\/reboot\"){ \/\/ \u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = 'sudo reboot';\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/chatMode\"){ \/\/ \u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_chatMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/faceMode\"){ \/\/ \u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_faceMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/disableServer\"){ \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_disableServer;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else {\n            pageWrite(res);\n        }\/\/ end of if\n    } \/\/ end of get request\n    \/\/ POST\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406 -------------------------------------------------------------------------------\n    if (req.method === 'POST') {\n        req.data = \"\";\n        req.on(\"data\", function(data) {\n            req.data += data;\n        });\n        req.on(\"end\", function() {\n            var query = qs.parse(req.data); \/\/ \u5168\u53d7\u4fe1\u30c7\u30fc\u30bf\u3092querry string\u3067\u30d1\u30fc\u30b9\u3059\u308b\u3002\n        \/\/ ----------------------------------------------------------------------------------------------\n            if (url_parts.pathname == \"\/editIntent\"){ \/\/ \u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u7de8\u96c6\n                posts = readPosts(file_chatIntent);\n                if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){\n                        posts.push(['common',query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    } else if(query.delNum &gt;= posts.length) {\n                        errorMsg = \"\u6570\u5b57\u304c\u5927\u304d\u3059\u304e\u307e\u3059\";\n                    } else {\n                        intent = posts[query.delNum][1];\n                        posts = readPosts(file_chatEntity);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatDialog);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8fd4\u7b54\u5019\u88dc\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatIntent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u305f\u3081\u3002\n                }\n                if (errorMsg == \"\"){\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatIntent, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editEntity\"){ \/\/ \u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u7de8\u96c6\n                posts = readPosts(file_chatEntity);\n                if (query.intent){ \/\/ selectIntent\u304b\u3089\u6765\u305f\u5834\u5408\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (i=0;i&lt;query.newItem.length;i++){ \/\/ \u3072\u3089\u304c\u306a\u304b\u30c1\u30a7\u30c3\u30af\n                        var unicode = query.newItem.charCodeAt(i);\n                        if ( unicode&lt;0x3040 || unicode&gt;0x309f ){\n                            if ( unicode != 0x30fc ){ \/\/ chou-on\n                                errorMsg = \"\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u306f\u3072\u3089\u304c\u306a(\u5168\u89d2)\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                            }\n                        }\n                    }\n                    for (var i=0;i &lt; posts.length; i++ ) { \/\/ \u91cd\u8907\u30c1\u30a7\u30c3\u30af\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u8ffd\u52a0\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5024\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{ \/\/ \u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306b\u3072\u3082\u3065\u304f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u304b\u3069\u3046\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                   text = obj2csv(posts);\n                   fs.writeFile(file_chatEntity, text , 'utf8', function (err) {\n                      var COMMAND = 'sudo sed -E \"s\/,\/    \/g\" '+file_chatEntity+' &gt; '+file_chatEntity_tsv; \/\/ csv\u3092tsv\u306b\u5909\u63db\n                      exec(COMMAND, function(error, stdout, stderr) { \/\/ tsv\u30d5\u30a1\u30a4\u30eb\u3092julius\u306edic\u5f62\u5f0f\u306b\u5909\u63db\n                           var COMMAND = 'iconv -f utf8 -t eucjp '+file_chatEntity_tsv+' | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; '+file_chatEntity_dic; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           \/\/ var COMMAND = 'iconv -f utf8 -t eucjp chatEntity.tsv | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; chatEntity.dic'; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           exec(COMMAND, function(error, stdout, stderr) {\n                           });\n                       }); \/\/end of exec\n                   }); \/\/ end of fs\n                } \/\/ end of if\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editDialog\"){ \/\/ \u30c0\u30a4\u30a2\u30ed\u30b0\u306e\u7de8\u96c6\n                posts = readPosts(file_chatDialog);\n                if (query.intent){ \/\/ intent\u3092\u9078\u629e\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\u3002\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\u306e\u5834\u5408\u3002\u91cd\u8907\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3002\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u91cd\u8907\u304c\u306a\u304b\u3063\u305f\u5834\u5408\u3002\u8ffd\u52a0\u3059\u308b\u3002\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5b57\u3058\u3083\u306a\u3044\u5834\u5408\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/\u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatDialog, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n\n            } else if (url_parts.pathname == \"\/setBasic\"){ \/\/ \u57fa\u672c\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data0[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/setTime\"){ \/\/ \u6642\u9593\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data1[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                yearNow=obj_config.data1[0].nowYear;\n                timeNow=obj_config.data1[0].nowTime;\n                console.log(yearNow);\n                console.log(timeNow);\n                var COMMAND = \"sudo date -s '\"+yearNow+\" \"+timeNow+\"'\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else if (url_parts.pathname == \"\/setServo\"){ \/\/ \u30b5\u30fc\u30dc\u8abf\u6574\u306e\u4fdd\u5b58\n                obj_config.data2[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                var COMMAND = \"python bezelie.py\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else { \/\/ \u8a72\u5f53\u305b\u305a\n                res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'});\n                res.write(\"NO-POST!!\");\n                res.end();\n                return;\n            } \/\/ end of if\n        }); \/\/ end of req on\n    } \/\/ end of POST request\n} \/\/ end of doRequest\n\n\/\/ ---------------------------------------------------------------------------------------------------------\n\/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u8a2d\u5b9a\nvar host = getLocalAddress().ipv4[0].address; \/\/ \u73fe\u5728\u306eIP\u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3059\u308b\u3002\ndebug('server_chat.js start \\n');\ndebug(host+'\\n');\n\n\/\/ \u30b5\u30fc\u30d0\u30fc\u306e\u8d77\u52d5\nconsole.log (\"starting node server\");\nvar server = http.createServer(); \/\/ http.server\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u308b\u3002\u623b\u5024\u306fhttp.server\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3002\nserver.on('request', routing);    \/\/ server\u3067request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\u3092\u767b\u9332\nvar port = 3000;                  \/\/ port\u306f1024\u4ee5\u4e0a\u306e\u6570\u5b57\u306a\u3089\u4f55\u3067\u3082\u3088\u3044\u3002\nserver.listen(port, host)         \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u5f85\u3061\u53d7\u3051\u72b6\u614b\u306b\u3059\u308b\u3002\nconsole.log (\"server is listening at \"+host+\":\"+port);\n<\/pre>\n<p style=\"padding-left: 30px;\">\u30fbejs\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u6d41\u3057\u8fbc\u3080\u3001\u5404\u30da\u30fc\u30b8\u306e\u30c7\u30fc\u30bf\u3092\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<h5>\u5909\u6570\u5ba3\u8a00<\/h5>\n<pre class=\"height:200 lang:js range:134-150 decode:true\" title=\"server_chat.js\">\/\/ \u3079\u30bc\u30ea\u30fc\u8a2d\u5b9aWeb\u30a2\u30d7\u30ea\n\/\/ for Bezelie Edgar\n\/\/ in Node-JS\n\/\/ by Jun Toyoda (Team Bezelie)\n\/\/ From  Aug 10th 2017\n\/\/ ---------------------------------------------------------------------------------\n\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30ed\u30fc\u30c9\u3057\u3066\u5909\u6570\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066\u8aad\u307f\u8fbc\u3080\nvar http = require('http'); \/\/ http\u30a2\u30af\u30bb\u30b9\u306e\u305f\u3081\u306e\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   http.createServer(function);\nvar fs   = require('fs');   \/\/ \u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u64cd\u4f5c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   fs.readFile('file name','utf-8',callback function)\n                            \/\/   fs.readFileSync('file name','utf-8')\nvar ejs  = require('ejs');  \/\/ JS\u7528\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30a8\u30f3\u30b8\u30f3ejs(Embedded JavaScript Templates)\n                            \/\/    ejs.render(\u5909\u6570\u306b\u4ee3\u5165\u3055\u308c\u305fejs, \u7f6e\u63db\u30c7\u30fc\u30bf\u30aa\u30d6\u30b8\u30a7\u30af\u30c8);\nvar url  = require('url');  \/\/ URL\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3084\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    url.parse(request.url);\nvar qs   = require('querystring');\n                            \/\/ \u30af\u30a8\u30ea\u30fc\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3057\u3066\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    qs.parse();\nvar exec = require('child_process').exec;\n                            \/\/ \u5b50\u30d7\u30ed\u30bb\u30b9\u306e\u751f\u6210\u3068\u7ba1\u7406\u3092\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3002\n                            \/\/    exec(COMMAND, [options], callback(error, stdout, stderr) {}\n                            \/\/    option maxBuffer:\u30d0\u30c3\u30d5\u30a1\u306e\u6700\u5927\u5bb9\u91cf(byte)\n                            \/\/    error :\u30a8\u30e9\u30fc\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n                            \/\/    stdout:\u6a19\u6e96\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\n                            \/\/    stderr:\u6a19\u6e96\u30a8\u30e9\u30fc\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\nvar CSV  = require(\"comma-separated-values\");\n                            \/\/ CSV\u3092\u914d\u5217\u5909\u6570\u3084\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\nvar os   = require('os');\n                            \/\/    os.networkInterfaces();\nvar sleep = require('sleep');\n                            \/\/ \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\u7528\u30e2\u30b8\u30e5\u30fc\u30eb\n\/\/ ejs\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nvar template            = fs.readFileSync(__dirname + '\/ejs\/template.ejs', 'utf-8');\nvar top                 = fs.readFileSync(__dirname + '\/ejs\/top.ejs', 'utf-8');\nvar editBasic           = fs.readFileSync(__dirname + '\/ejs\/editBasic.ejs', 'utf-8');\nvar editChat            = fs.readFileSync(__dirname + '\/ejs\/editChat.ejs', 'utf-8');\nvar editTime            = fs.readFileSync(__dirname + '\/ejs\/editTime.ejs', 'utf-8');\nvar editServo           = fs.readFileSync(__dirname + '\/ejs\/editServo.ejs', 'utf-8');\nvar setBasic            = fs.readFileSync(__dirname + '\/ejs\/setBasic.ejs', 'utf-8');\nvar setTime             = fs.readFileSync(__dirname + '\/ejs\/setTime.ejs', 'utf-8');\nvar setServo            = fs.readFileSync(__dirname + '\/ejs\/setServo.ejs', 'utf-8');\nvar editIntent          = fs.readFileSync(__dirname + '\/ejs\/editIntent.ejs', 'utf-8');\nvar selectIntent4entity = fs.readFileSync(__dirname + '\/ejs\/selectIntent4entity.ejs', 'utf-8');\nvar editEntity          = fs.readFileSync(__dirname + '\/ejs\/editEntity.ejs', 'utf-8');\nvar selectIntent4dialog = fs.readFileSync(__dirname + '\/ejs\/selectIntent4dialog.ejs', 'utf-8');\nvar editDialog          = fs.readFileSync(__dirname + '\/ejs\/editDialog.ejs', 'utf-8');\nvar starting_pythonApp  = fs.readFileSync(__dirname + '\/ejs\/starting_pythonApp.ejs', 'utf-8');\nvar reboot              = fs.readFileSync(__dirname + '\/ejs\/reboot.ejs', 'utf-8');\nvar chatMode            = fs.readFileSync(__dirname + '\/ejs\/chatMode.ejs', 'utf-8');\nvar faceMode            = fs.readFileSync(__dirname + '\/ejs\/faceMode.ejs', 'utf-8');\nvar disableServer       = fs.readFileSync(__dirname + '\/ejs\/disableServer.ejs', 'utf-8');\nvar test                = fs.readFileSync(__dirname + '\/ejs\/test.ejs', 'utf-8');\n\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar routes = { \/\/ \u30d1\u30b9\u3054\u3068\u306e\u8868\u793a\u5185\u5bb9\u3092\u9023\u60f3\u914d\u5217\u306b\u683c\u7d0d\n    \"\/\":{\n        \"title\":\"BEZELIE\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u8a2d\u5b9a\u30c7\u30fc\u30bf\u306e\u7de8\u96c6\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":top}, \/\/ \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\n    \"\/editBasic\":{\n        \"title\":\"\u57fa\u672c\u8a2d\u5b9a\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u306e\u57fa\u672c\u7684\u306a\u8a2d\u5b9a\u3092\u884c\u3044\u307e\u3059\",\n        \"content\":editBasic},\n    \"\/editChat\":{\n        \"title\":\"\u5bfe\u8a71\u8a2d\u5b9a\",\n        \"message\":\"\uff13\u7a2e\u985e\u306e\u30c7\u30fc\u30bf\u3092\u7de8\u96c6\u3059\u308b\u3053\u3068\u3067\u3001\u5bfe\u8a71\u3092\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":editChat},\n    \"\/editTime\":{\n        \"title\":\"\u6642\u9593\u8a2d\u5b9a\",\n        \"message\":\"\u30a2\u30e9\u30fc\u30e0\u3068\u6d3b\u52d5\u6642\u9593\u306e\u8a2d\u5b9a\u3092\u3057\u307e\u3059\",\n        \"content\":editTime},\n    \"\/editServo\":{\n        \"title\":\"\u30b5\u30fc\u30dc\u8abf\u6574\",\n        \"message\":\"\u30b5\u30fc\u30dc\u306e\u521d\u671f\u4f4d\u7f6e\uff08\u89d2\u5ea6\uff09\u3092\u8abf\u6574\u3057\u307e\u3059\u3002\u5358\u4f4d\u306f\u5ea6\u3067\u3059\u3002\u30b5\u30fc\u30dc\u3092\u4e0a\u304b\u3089\u898b\u3066\u6642\u8a08\u56de\u308a\u304c\u6b63\u306e\u5024\u306b\u306a\u308a\u307e\u3059\",\n        \"content\":editServo},\n    \"\/chatMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/faceMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/disableServer\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u306b\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/editIntent\":{\n        \"title\":\"\u3010\u8cea\u554f\u5185\u5bb9\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u5185\u5bb9\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u805e\u304d\u305f\u3044\u5185\u5bb9\u306e\u3053\u3068\u3067\u3059\u3002\u3053\u306e\u6587\u5b57\u304c\u97f3\u58f0\u8a8d\u8b58\u3055\u308c\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u306e\u3067\u3001\u308f\u304b\u308a\u3084\u3059\u3044\u540d\u79f0\u3092\u3064\u3051\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editIntent},\n    \"\/selectIntent4entity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u671b\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":selectIntent4entity},\n    \"\/editEntity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u306e\u8272\u3005\u306a\u8a00\u3044\u56de\u3057\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u306e\u8a00\u3044\u56de\u3057\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u8cea\u554f\u3059\u308b\u969b\u306e\u3001\u3055\u307e\u3056\u307e\u306a\u8a00\u3044\u304b\u305f\u306e\u3053\u3068\u3067\u3059\u3002\u3072\u3089\u304c\u306a\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editEntity},\n    \"\/selectIntent4dialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u597d\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n        \"content\":selectIntent4dialog},\n    \"\/editDialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8fd4\u7b54\u5019\u88dc\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8fd4\u7b54\u5019\u88dc\u3068\u306f\u30e6\u30fc\u30b6\u30fc\u304b\u3089\u306e\u8cea\u554f\u306b\u5bfe\u3059\u308b\u3079\u30bc\u30ea\u30fc\u304b\u3089\u306e\u8fd4\u7b54\u306e\u5019\u88dc\u3067\u3059\u3002\u8907\u6570\u306e\u8fd4\u7b54\u3092\u8a2d\u5b9a\u3057\u305f\u5834\u5408\u306f\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u3070\u308c\u307e\u3059\u3002\",\n        \"content\":editDialog},\n    \"\/reboot\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":reboot},\n    \"\/starting_pythonApp\":{\n        \"title\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":starting_pythonApp},\n    \"\/setBasic\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setBasic},\n    \"\/setTime\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setTime},\n    \"\/setServo\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setServo},\n    \"\/test\":{\n        \"title\":\"\u30c6\u30b9\u30c8\",\n        \"message\":\"\u3053\u308c\u306f\u30c6\u30b9\u30c8\u7528\u306e\u30da\u30fc\u30b8\u3067\u3059\",\n        \"content\":test}\n};\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar file_chatIntent            = \"\/home\/pi\/bezelie\/chatIntent.csv\";\nvar file_chatEntity            = \"\/home\/pi\/bezelie\/chatEntity.csv\";\nvar file_chatDialog            = \"\/home\/pi\/bezelie\/chatDialog.csv\";\nvar file_chatEntity_tsv        = \"\/home\/pi\/bezelie\/chatEntity.tsv\";\nvar file_chatEntity_dic        = \"\/home\/pi\/bezelie\/chatEntity.dic\";\nvar file_debug                 = \"\/home\/pi\/bezelie\/debug.txt\";\nvar file_data_chat             = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\";\nvar file_restart_app           = \"\/home\/pi\/bezelie\/edgar\/restart_app.sh\";\nvar file_exec_talk             = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\";\nvar file_setting_chatMode      = \"\/home\/pi\/bezelie\/edgar\/setting_chatMode.sh\";\nvar file_setting_faceMode      = \"\/home\/pi\/bezelie\/edgar\/setting_faceMode.sh\";\nvar file_setting_disableServer = \"\/home\/pi\/bezelie\/edgar\/setting_disableServer.sh\";\nvar errorMsg = \"\"; \/\/ \u3053\u308c\u304c\u7a7a\u6b04\u306e\u3068\u304d\u306f\u30a8\u30e9\u30fc\u7121\u3057\nvar posts = \"\";    \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3067\u9001\u3089\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\nvar intent = \"\";   \/\/ \u4eca\u56de\u9078\u629e\u3055\u308c\u305fintent\uff08\u5358\u6570\uff09\n\n\/\/ \u95a2\u6570\u5b9a\u7fa9\nfunction getLocalAddress() {                    \/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u53d6\u5f97\n    var ifacesObj = {}\n    ifacesObj.ipv4 = [];\n    ifacesObj.ipv6 = [];\n    var interfaces = os.networkInterfaces();\n\n    for (var dev in interfaces) {\n        interfaces[dev].forEach(function(details){\n            if (!details.internal){\n                switch(details.family){\n                    case \"IPv4\":\n                        ifacesObj.ipv4.push({name:dev, address:details.address});\n                    break;\n                    case \"IPv6\":\n                        ifacesObj.ipv6.push({name:dev, address:details.address})\n                    break;\n                }\n            }\n        });\n    }\n    return ifacesObj;\n};\n\nfunction pageWrite (res){                      \/\/ \u30da\u30fc\u30b8\u63cf\u753b\n    content = ejs.render( template, {\n        title: routes[url_parts.pathname].title,\n        errorMsg: errorMsg,\n        content: ejs.render( routes[url_parts.pathname].content, {\n            message: routes[url_parts.pathname].message,  \/\/ pathname\u306b\u5fdc\u3058\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6307\u5b9a\n            posts: posts,  \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3055\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\n            intent: intent \/\/ \u4eca\u56de\u9078\u3070\u308c\u305f\u30a4\u30f3\u30c6\u30f3\u30c8\n        })\n    });\n    res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n    res.write(content);\n    res.end();\n}\n\nfunction delChk (query, posts, intent){       \/\/ \u524a\u9664\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u756a\u53f7\u304c\u3001\u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u3082\u306e\u304b\u3092\u8abf\u3079\u308b\n    errorMsg = \"\u756a\u53f7\u304c\u9055\u3044\u307e\u3059\";\n    for (var i=0;i &lt; posts.length; i++ ) {\n        if (posts[i][0]==intent &amp;&amp; i==query.delNum){\n            errorMsg = \"\";\n        }\n    }\n    return errorMsg;\n}\n\nfunction readPosts(file){                     \/\/\n    var text = fs.readFileSync(file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    \/\/var text = fs.readFileSync(__dirname + \"\/\" + file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    posts = new CSV(text, {header:false}).parse(); \/\/  TEXT\u3092CSV\u3092\u4ef2\u4ecb\u3057\u3066\u30ea\u30b9\u30c8\u5909\u6570\u306b\u5909\u63db\u3059\u308b\n    return posts;\n}\n\nfunction obj2csv(posts){                     \/\/\n    text = '';\n    for (var i=0;i &lt; posts.length; i++ ) {\n        text = text+posts[i]+'\\n';\n        }\n    return text;\n}\n\nfunction debug(text){                        \/\/\n    \/\/fs.appendFileSync(file_debug, text, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n}\n\n\/\/-------------------------------------------------------------------------------------------------------\n\/\/ \u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\nfunction routing(req, res){ \/\/ request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u3089\u5b9f\u884c\u3055\u308c\u308b\u95a2\u6570\n    url_parts = url.parse(req.url); \/\/ URL\u60c5\u5831\u3092\u30d1\u30fc\u30b9\u51e6\u7406\n    errorMsg = \"\";\n    \/\/ \u60f3\u5b9a\u3057\u3066\u3044\u306a\u3044\u30da\u30fc\u30b8\u306b\u98db\u307c\u3046\u3068\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\n    if (routes[url_parts.pathname] == null){ \/\/ \u30d1\u30b9\u304c\u5909\u6570routes\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u30a8\u30e9\u30fc\u3092\u8868\u793a\u3059\u308b\n        content = \"&lt;h1&gt;NOT FOUND PAGE:\" + req.url + \"&lt;\/h1&gt;\"\n        res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n        res.write(content);\n        res.end();\n        return;\n    }\n    \/\/ GET\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406  -------------------------------------------------------------------------------\n    if (req.method === \"GET\"){\n        if (url_parts.pathname === \"\/editIntent\" || url_parts.pathname === \"\/selectIntent4entity\" || url_parts.pathname === \"\/selectIntent4dialog\"){\n            posts = readPosts(file_chatIntent);\n            pageWrite(res);\n            return;\n        } else if (url_parts.pathname === \"\/editBasic\" || url_parts.pathname === \"\/editTime\" || url_parts.pathname === \"\/editServo\"){ \/\/\n            var json = fs.readFileSync(file_data_chat, \"utf-8\");  \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n            obj_config = JSON.parse(json); \/\/ JSON\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u3002ejs\u304b\u3089\u3082\u8aad\u3081\u308b\u3088\u3046\u306b\u30b0\u30ed\u30fc\u30d0\u30eb\u3067\u5b9a\u7fa9\u3059\u308b\n            pageWrite(res)\n        } else if (url_parts.pathname == \"\/starting_pythonApp\"){ \/\/ Julius\u3068python\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\n            pageWrite(res);\n            debug('restart function start \\n');\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"bash \"+file_restart_app;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n            debug('restart function end \\n');\n        } else if (url_parts.pathname == \"\/reboot\"){ \/\/ \u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = 'sudo reboot';\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/chatMode\"){ \/\/ \u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_chatMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/faceMode\"){ \/\/ \u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_faceMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/disableServer\"){ \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_disableServer;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else {\n            pageWrite(res);\n        }\/\/ end of if\n    } \/\/ end of get request\n    \/\/ POST\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406 -------------------------------------------------------------------------------\n    if (req.method === 'POST') {\n        req.data = \"\";\n        req.on(\"data\", function(data) {\n            req.data += data;\n        });\n        req.on(\"end\", function() {\n            var query = qs.parse(req.data); \/\/ \u5168\u53d7\u4fe1\u30c7\u30fc\u30bf\u3092querry string\u3067\u30d1\u30fc\u30b9\u3059\u308b\u3002\n        \/\/ ----------------------------------------------------------------------------------------------\n            if (url_parts.pathname == \"\/editIntent\"){ \/\/ \u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u7de8\u96c6\n                posts = readPosts(file_chatIntent);\n                if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){\n                        posts.push(['common',query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    } else if(query.delNum &gt;= posts.length) {\n                        errorMsg = \"\u6570\u5b57\u304c\u5927\u304d\u3059\u304e\u307e\u3059\";\n                    } else {\n                        intent = posts[query.delNum][1];\n                        posts = readPosts(file_chatEntity);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatDialog);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8fd4\u7b54\u5019\u88dc\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatIntent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u305f\u3081\u3002\n                }\n                if (errorMsg == \"\"){\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatIntent, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editEntity\"){ \/\/ \u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u7de8\u96c6\n                posts = readPosts(file_chatEntity);\n                if (query.intent){ \/\/ selectIntent\u304b\u3089\u6765\u305f\u5834\u5408\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (i=0;i&lt;query.newItem.length;i++){ \/\/ \u3072\u3089\u304c\u306a\u304b\u30c1\u30a7\u30c3\u30af\n                        var unicode = query.newItem.charCodeAt(i);\n                        if ( unicode&lt;0x3040 || unicode&gt;0x309f ){\n                            if ( unicode != 0x30fc ){ \/\/ chou-on\n                                errorMsg = \"\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u306f\u3072\u3089\u304c\u306a(\u5168\u89d2)\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                            }\n                        }\n                    }\n                    for (var i=0;i &lt; posts.length; i++ ) { \/\/ \u91cd\u8907\u30c1\u30a7\u30c3\u30af\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u8ffd\u52a0\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5024\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{ \/\/ \u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306b\u3072\u3082\u3065\u304f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u304b\u3069\u3046\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                   text = obj2csv(posts);\n                   fs.writeFile(file_chatEntity, text , 'utf8', function (err) {\n                      var COMMAND = 'sudo sed -E \"s\/,\/    \/g\" '+file_chatEntity+' &gt; '+file_chatEntity_tsv; \/\/ csv\u3092tsv\u306b\u5909\u63db\n                      exec(COMMAND, function(error, stdout, stderr) { \/\/ tsv\u30d5\u30a1\u30a4\u30eb\u3092julius\u306edic\u5f62\u5f0f\u306b\u5909\u63db\n                           var COMMAND = 'iconv -f utf8 -t eucjp '+file_chatEntity_tsv+' | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; '+file_chatEntity_dic; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           \/\/ var COMMAND = 'iconv -f utf8 -t eucjp chatEntity.tsv | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; chatEntity.dic'; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           exec(COMMAND, function(error, stdout, stderr) {\n                           });\n                       }); \/\/end of exec\n                   }); \/\/ end of fs\n                } \/\/ end of if\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editDialog\"){ \/\/ \u30c0\u30a4\u30a2\u30ed\u30b0\u306e\u7de8\u96c6\n                posts = readPosts(file_chatDialog);\n                if (query.intent){ \/\/ intent\u3092\u9078\u629e\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\u3002\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\u306e\u5834\u5408\u3002\u91cd\u8907\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3002\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u91cd\u8907\u304c\u306a\u304b\u3063\u305f\u5834\u5408\u3002\u8ffd\u52a0\u3059\u308b\u3002\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5b57\u3058\u3083\u306a\u3044\u5834\u5408\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/\u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatDialog, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n\n            } else if (url_parts.pathname == \"\/setBasic\"){ \/\/ \u57fa\u672c\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data0[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/setTime\"){ \/\/ \u6642\u9593\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data1[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                yearNow=obj_config.data1[0].nowYear;\n                timeNow=obj_config.data1[0].nowTime;\n                console.log(yearNow);\n                console.log(timeNow);\n                var COMMAND = \"sudo date -s '\"+yearNow+\" \"+timeNow+\"'\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else if (url_parts.pathname == \"\/setServo\"){ \/\/ \u30b5\u30fc\u30dc\u8abf\u6574\u306e\u4fdd\u5b58\n                obj_config.data2[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                var COMMAND = \"python bezelie.py\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else { \/\/ \u8a72\u5f53\u305b\u305a\n                res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'});\n                res.write(\"NO-POST!!\");\n                res.end();\n                return;\n            } \/\/ end of if\n        }); \/\/ end of req on\n    } \/\/ end of POST request\n} \/\/ end of doRequest\n\n\/\/ ---------------------------------------------------------------------------------------------------------\n\/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u8a2d\u5b9a\nvar host = getLocalAddress().ipv4[0].address; \/\/ \u73fe\u5728\u306eIP\u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3059\u308b\u3002\ndebug('server_chat.js start \\n');\ndebug(host+'\\n');\n\n\/\/ \u30b5\u30fc\u30d0\u30fc\u306e\u8d77\u52d5\nconsole.log (\"starting node server\");\nvar server = http.createServer(); \/\/ http.server\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u308b\u3002\u623b\u5024\u306fhttp.server\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3002\nserver.on('request', routing);    \/\/ server\u3067request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\u3092\u767b\u9332\nvar port = 3000;                  \/\/ port\u306f1024\u4ee5\u4e0a\u306e\u6570\u5b57\u306a\u3089\u4f55\u3067\u3082\u3088\u3044\u3002\nserver.listen(port, host)         \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u5f85\u3061\u53d7\u3051\u72b6\u614b\u306b\u3059\u308b\u3002\nconsole.log (\"server is listening at \"+host+\":\"+port);\n<\/pre>\n<p style=\"padding-left: 30px;\">\u30fb\u4e3b\u306b\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u5909\u6570\u306b\u4ee3\u5165\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<h5>\u95a2\u6570\u5b9a\u7fa9<\/h5>\n<pre class=\"height:200 lang:js range:150-218 decode:true\" title=\"server_chat.js\">\/\/ \u3079\u30bc\u30ea\u30fc\u8a2d\u5b9aWeb\u30a2\u30d7\u30ea\n\/\/ for Bezelie Edgar\n\/\/ in Node-JS\n\/\/ by Jun Toyoda (Team Bezelie)\n\/\/ From  Aug 10th 2017\n\/\/ ---------------------------------------------------------------------------------\n\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30ed\u30fc\u30c9\u3057\u3066\u5909\u6570\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066\u8aad\u307f\u8fbc\u3080\nvar http = require('http'); \/\/ http\u30a2\u30af\u30bb\u30b9\u306e\u305f\u3081\u306e\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   http.createServer(function);\nvar fs   = require('fs');   \/\/ \u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u64cd\u4f5c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   fs.readFile('file name','utf-8',callback function)\n                            \/\/   fs.readFileSync('file name','utf-8')\nvar ejs  = require('ejs');  \/\/ JS\u7528\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30a8\u30f3\u30b8\u30f3ejs(Embedded JavaScript Templates)\n                            \/\/    ejs.render(\u5909\u6570\u306b\u4ee3\u5165\u3055\u308c\u305fejs, \u7f6e\u63db\u30c7\u30fc\u30bf\u30aa\u30d6\u30b8\u30a7\u30af\u30c8);\nvar url  = require('url');  \/\/ URL\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3084\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    url.parse(request.url);\nvar qs   = require('querystring');\n                            \/\/ \u30af\u30a8\u30ea\u30fc\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3057\u3066\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    qs.parse();\nvar exec = require('child_process').exec;\n                            \/\/ \u5b50\u30d7\u30ed\u30bb\u30b9\u306e\u751f\u6210\u3068\u7ba1\u7406\u3092\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3002\n                            \/\/    exec(COMMAND, [options], callback(error, stdout, stderr) {}\n                            \/\/    option maxBuffer:\u30d0\u30c3\u30d5\u30a1\u306e\u6700\u5927\u5bb9\u91cf(byte)\n                            \/\/    error :\u30a8\u30e9\u30fc\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n                            \/\/    stdout:\u6a19\u6e96\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\n                            \/\/    stderr:\u6a19\u6e96\u30a8\u30e9\u30fc\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\nvar CSV  = require(\"comma-separated-values\");\n                            \/\/ CSV\u3092\u914d\u5217\u5909\u6570\u3084\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\nvar os   = require('os');\n                            \/\/    os.networkInterfaces();\nvar sleep = require('sleep');\n                            \/\/ \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\u7528\u30e2\u30b8\u30e5\u30fc\u30eb\n\/\/ ejs\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nvar template            = fs.readFileSync(__dirname + '\/ejs\/template.ejs', 'utf-8');\nvar top                 = fs.readFileSync(__dirname + '\/ejs\/top.ejs', 'utf-8');\nvar editBasic           = fs.readFileSync(__dirname + '\/ejs\/editBasic.ejs', 'utf-8');\nvar editChat            = fs.readFileSync(__dirname + '\/ejs\/editChat.ejs', 'utf-8');\nvar editTime            = fs.readFileSync(__dirname + '\/ejs\/editTime.ejs', 'utf-8');\nvar editServo           = fs.readFileSync(__dirname + '\/ejs\/editServo.ejs', 'utf-8');\nvar setBasic            = fs.readFileSync(__dirname + '\/ejs\/setBasic.ejs', 'utf-8');\nvar setTime             = fs.readFileSync(__dirname + '\/ejs\/setTime.ejs', 'utf-8');\nvar setServo            = fs.readFileSync(__dirname + '\/ejs\/setServo.ejs', 'utf-8');\nvar editIntent          = fs.readFileSync(__dirname + '\/ejs\/editIntent.ejs', 'utf-8');\nvar selectIntent4entity = fs.readFileSync(__dirname + '\/ejs\/selectIntent4entity.ejs', 'utf-8');\nvar editEntity          = fs.readFileSync(__dirname + '\/ejs\/editEntity.ejs', 'utf-8');\nvar selectIntent4dialog = fs.readFileSync(__dirname + '\/ejs\/selectIntent4dialog.ejs', 'utf-8');\nvar editDialog          = fs.readFileSync(__dirname + '\/ejs\/editDialog.ejs', 'utf-8');\nvar starting_pythonApp  = fs.readFileSync(__dirname + '\/ejs\/starting_pythonApp.ejs', 'utf-8');\nvar reboot              = fs.readFileSync(__dirname + '\/ejs\/reboot.ejs', 'utf-8');\nvar chatMode            = fs.readFileSync(__dirname + '\/ejs\/chatMode.ejs', 'utf-8');\nvar faceMode            = fs.readFileSync(__dirname + '\/ejs\/faceMode.ejs', 'utf-8');\nvar disableServer       = fs.readFileSync(__dirname + '\/ejs\/disableServer.ejs', 'utf-8');\nvar test                = fs.readFileSync(__dirname + '\/ejs\/test.ejs', 'utf-8');\n\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar routes = { \/\/ \u30d1\u30b9\u3054\u3068\u306e\u8868\u793a\u5185\u5bb9\u3092\u9023\u60f3\u914d\u5217\u306b\u683c\u7d0d\n    \"\/\":{\n        \"title\":\"BEZELIE\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u8a2d\u5b9a\u30c7\u30fc\u30bf\u306e\u7de8\u96c6\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":top}, \/\/ \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\n    \"\/editBasic\":{\n        \"title\":\"\u57fa\u672c\u8a2d\u5b9a\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u306e\u57fa\u672c\u7684\u306a\u8a2d\u5b9a\u3092\u884c\u3044\u307e\u3059\",\n        \"content\":editBasic},\n    \"\/editChat\":{\n        \"title\":\"\u5bfe\u8a71\u8a2d\u5b9a\",\n        \"message\":\"\uff13\u7a2e\u985e\u306e\u30c7\u30fc\u30bf\u3092\u7de8\u96c6\u3059\u308b\u3053\u3068\u3067\u3001\u5bfe\u8a71\u3092\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":editChat},\n    \"\/editTime\":{\n        \"title\":\"\u6642\u9593\u8a2d\u5b9a\",\n        \"message\":\"\u30a2\u30e9\u30fc\u30e0\u3068\u6d3b\u52d5\u6642\u9593\u306e\u8a2d\u5b9a\u3092\u3057\u307e\u3059\",\n        \"content\":editTime},\n    \"\/editServo\":{\n        \"title\":\"\u30b5\u30fc\u30dc\u8abf\u6574\",\n        \"message\":\"\u30b5\u30fc\u30dc\u306e\u521d\u671f\u4f4d\u7f6e\uff08\u89d2\u5ea6\uff09\u3092\u8abf\u6574\u3057\u307e\u3059\u3002\u5358\u4f4d\u306f\u5ea6\u3067\u3059\u3002\u30b5\u30fc\u30dc\u3092\u4e0a\u304b\u3089\u898b\u3066\u6642\u8a08\u56de\u308a\u304c\u6b63\u306e\u5024\u306b\u306a\u308a\u307e\u3059\",\n        \"content\":editServo},\n    \"\/chatMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/faceMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/disableServer\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u306b\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/editIntent\":{\n        \"title\":\"\u3010\u8cea\u554f\u5185\u5bb9\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u5185\u5bb9\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u805e\u304d\u305f\u3044\u5185\u5bb9\u306e\u3053\u3068\u3067\u3059\u3002\u3053\u306e\u6587\u5b57\u304c\u97f3\u58f0\u8a8d\u8b58\u3055\u308c\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u306e\u3067\u3001\u308f\u304b\u308a\u3084\u3059\u3044\u540d\u79f0\u3092\u3064\u3051\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editIntent},\n    \"\/selectIntent4entity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u671b\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":selectIntent4entity},\n    \"\/editEntity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u306e\u8272\u3005\u306a\u8a00\u3044\u56de\u3057\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u306e\u8a00\u3044\u56de\u3057\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u8cea\u554f\u3059\u308b\u969b\u306e\u3001\u3055\u307e\u3056\u307e\u306a\u8a00\u3044\u304b\u305f\u306e\u3053\u3068\u3067\u3059\u3002\u3072\u3089\u304c\u306a\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editEntity},\n    \"\/selectIntent4dialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u597d\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n        \"content\":selectIntent4dialog},\n    \"\/editDialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8fd4\u7b54\u5019\u88dc\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8fd4\u7b54\u5019\u88dc\u3068\u306f\u30e6\u30fc\u30b6\u30fc\u304b\u3089\u306e\u8cea\u554f\u306b\u5bfe\u3059\u308b\u3079\u30bc\u30ea\u30fc\u304b\u3089\u306e\u8fd4\u7b54\u306e\u5019\u88dc\u3067\u3059\u3002\u8907\u6570\u306e\u8fd4\u7b54\u3092\u8a2d\u5b9a\u3057\u305f\u5834\u5408\u306f\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u3070\u308c\u307e\u3059\u3002\",\n        \"content\":editDialog},\n    \"\/reboot\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":reboot},\n    \"\/starting_pythonApp\":{\n        \"title\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":starting_pythonApp},\n    \"\/setBasic\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setBasic},\n    \"\/setTime\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setTime},\n    \"\/setServo\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setServo},\n    \"\/test\":{\n        \"title\":\"\u30c6\u30b9\u30c8\",\n        \"message\":\"\u3053\u308c\u306f\u30c6\u30b9\u30c8\u7528\u306e\u30da\u30fc\u30b8\u3067\u3059\",\n        \"content\":test}\n};\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar file_chatIntent            = \"\/home\/pi\/bezelie\/chatIntent.csv\";\nvar file_chatEntity            = \"\/home\/pi\/bezelie\/chatEntity.csv\";\nvar file_chatDialog            = \"\/home\/pi\/bezelie\/chatDialog.csv\";\nvar file_chatEntity_tsv        = \"\/home\/pi\/bezelie\/chatEntity.tsv\";\nvar file_chatEntity_dic        = \"\/home\/pi\/bezelie\/chatEntity.dic\";\nvar file_debug                 = \"\/home\/pi\/bezelie\/debug.txt\";\nvar file_data_chat             = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\";\nvar file_restart_app           = \"\/home\/pi\/bezelie\/edgar\/restart_app.sh\";\nvar file_exec_talk             = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\";\nvar file_setting_chatMode      = \"\/home\/pi\/bezelie\/edgar\/setting_chatMode.sh\";\nvar file_setting_faceMode      = \"\/home\/pi\/bezelie\/edgar\/setting_faceMode.sh\";\nvar file_setting_disableServer = \"\/home\/pi\/bezelie\/edgar\/setting_disableServer.sh\";\nvar errorMsg = \"\"; \/\/ \u3053\u308c\u304c\u7a7a\u6b04\u306e\u3068\u304d\u306f\u30a8\u30e9\u30fc\u7121\u3057\nvar posts = \"\";    \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3067\u9001\u3089\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\nvar intent = \"\";   \/\/ \u4eca\u56de\u9078\u629e\u3055\u308c\u305fintent\uff08\u5358\u6570\uff09\n\n\/\/ \u95a2\u6570\u5b9a\u7fa9\nfunction getLocalAddress() {                    \/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u53d6\u5f97\n    var ifacesObj = {}\n    ifacesObj.ipv4 = [];\n    ifacesObj.ipv6 = [];\n    var interfaces = os.networkInterfaces();\n\n    for (var dev in interfaces) {\n        interfaces[dev].forEach(function(details){\n            if (!details.internal){\n                switch(details.family){\n                    case \"IPv4\":\n                        ifacesObj.ipv4.push({name:dev, address:details.address});\n                    break;\n                    case \"IPv6\":\n                        ifacesObj.ipv6.push({name:dev, address:details.address})\n                    break;\n                }\n            }\n        });\n    }\n    return ifacesObj;\n};\n\nfunction pageWrite (res){                      \/\/ \u30da\u30fc\u30b8\u63cf\u753b\n    content = ejs.render( template, {\n        title: routes[url_parts.pathname].title,\n        errorMsg: errorMsg,\n        content: ejs.render( routes[url_parts.pathname].content, {\n            message: routes[url_parts.pathname].message,  \/\/ pathname\u306b\u5fdc\u3058\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6307\u5b9a\n            posts: posts,  \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3055\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\n            intent: intent \/\/ \u4eca\u56de\u9078\u3070\u308c\u305f\u30a4\u30f3\u30c6\u30f3\u30c8\n        })\n    });\n    res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n    res.write(content);\n    res.end();\n}\n\nfunction delChk (query, posts, intent){       \/\/ \u524a\u9664\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u756a\u53f7\u304c\u3001\u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u3082\u306e\u304b\u3092\u8abf\u3079\u308b\n    errorMsg = \"\u756a\u53f7\u304c\u9055\u3044\u307e\u3059\";\n    for (var i=0;i &lt; posts.length; i++ ) {\n        if (posts[i][0]==intent &amp;&amp; i==query.delNum){\n            errorMsg = \"\";\n        }\n    }\n    return errorMsg;\n}\n\nfunction readPosts(file){                     \/\/\n    var text = fs.readFileSync(file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    \/\/var text = fs.readFileSync(__dirname + \"\/\" + file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    posts = new CSV(text, {header:false}).parse(); \/\/  TEXT\u3092CSV\u3092\u4ef2\u4ecb\u3057\u3066\u30ea\u30b9\u30c8\u5909\u6570\u306b\u5909\u63db\u3059\u308b\n    return posts;\n}\n\nfunction obj2csv(posts){                     \/\/\n    text = '';\n    for (var i=0;i &lt; posts.length; i++ ) {\n        text = text+posts[i]+'\\n';\n        }\n    return text;\n}\n\nfunction debug(text){                        \/\/\n    \/\/fs.appendFileSync(file_debug, text, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n}\n\n\/\/-------------------------------------------------------------------------------------------------------\n\/\/ \u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\nfunction routing(req, res){ \/\/ request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u3089\u5b9f\u884c\u3055\u308c\u308b\u95a2\u6570\n    url_parts = url.parse(req.url); \/\/ URL\u60c5\u5831\u3092\u30d1\u30fc\u30b9\u51e6\u7406\n    errorMsg = \"\";\n    \/\/ \u60f3\u5b9a\u3057\u3066\u3044\u306a\u3044\u30da\u30fc\u30b8\u306b\u98db\u307c\u3046\u3068\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\n    if (routes[url_parts.pathname] == null){ \/\/ \u30d1\u30b9\u304c\u5909\u6570routes\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u30a8\u30e9\u30fc\u3092\u8868\u793a\u3059\u308b\n        content = \"&lt;h1&gt;NOT FOUND PAGE:\" + req.url + \"&lt;\/h1&gt;\"\n        res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n        res.write(content);\n        res.end();\n        return;\n    }\n    \/\/ GET\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406  -------------------------------------------------------------------------------\n    if (req.method === \"GET\"){\n        if (url_parts.pathname === \"\/editIntent\" || url_parts.pathname === \"\/selectIntent4entity\" || url_parts.pathname === \"\/selectIntent4dialog\"){\n            posts = readPosts(file_chatIntent);\n            pageWrite(res);\n            return;\n        } else if (url_parts.pathname === \"\/editBasic\" || url_parts.pathname === \"\/editTime\" || url_parts.pathname === \"\/editServo\"){ \/\/\n            var json = fs.readFileSync(file_data_chat, \"utf-8\");  \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n            obj_config = JSON.parse(json); \/\/ JSON\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u3002ejs\u304b\u3089\u3082\u8aad\u3081\u308b\u3088\u3046\u306b\u30b0\u30ed\u30fc\u30d0\u30eb\u3067\u5b9a\u7fa9\u3059\u308b\n            pageWrite(res)\n        } else if (url_parts.pathname == \"\/starting_pythonApp\"){ \/\/ Julius\u3068python\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\n            pageWrite(res);\n            debug('restart function start \\n');\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"bash \"+file_restart_app;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n            debug('restart function end \\n');\n        } else if (url_parts.pathname == \"\/reboot\"){ \/\/ \u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = 'sudo reboot';\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/chatMode\"){ \/\/ \u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_chatMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/faceMode\"){ \/\/ \u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_faceMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/disableServer\"){ \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_disableServer;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else {\n            pageWrite(res);\n        }\/\/ end of if\n    } \/\/ end of get request\n    \/\/ POST\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406 -------------------------------------------------------------------------------\n    if (req.method === 'POST') {\n        req.data = \"\";\n        req.on(\"data\", function(data) {\n            req.data += data;\n        });\n        req.on(\"end\", function() {\n            var query = qs.parse(req.data); \/\/ \u5168\u53d7\u4fe1\u30c7\u30fc\u30bf\u3092querry string\u3067\u30d1\u30fc\u30b9\u3059\u308b\u3002\n        \/\/ ----------------------------------------------------------------------------------------------\n            if (url_parts.pathname == \"\/editIntent\"){ \/\/ \u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u7de8\u96c6\n                posts = readPosts(file_chatIntent);\n                if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){\n                        posts.push(['common',query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    } else if(query.delNum &gt;= posts.length) {\n                        errorMsg = \"\u6570\u5b57\u304c\u5927\u304d\u3059\u304e\u307e\u3059\";\n                    } else {\n                        intent = posts[query.delNum][1];\n                        posts = readPosts(file_chatEntity);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatDialog);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8fd4\u7b54\u5019\u88dc\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatIntent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u305f\u3081\u3002\n                }\n                if (errorMsg == \"\"){\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatIntent, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editEntity\"){ \/\/ \u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u7de8\u96c6\n                posts = readPosts(file_chatEntity);\n                if (query.intent){ \/\/ selectIntent\u304b\u3089\u6765\u305f\u5834\u5408\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (i=0;i&lt;query.newItem.length;i++){ \/\/ \u3072\u3089\u304c\u306a\u304b\u30c1\u30a7\u30c3\u30af\n                        var unicode = query.newItem.charCodeAt(i);\n                        if ( unicode&lt;0x3040 || unicode&gt;0x309f ){\n                            if ( unicode != 0x30fc ){ \/\/ chou-on\n                                errorMsg = \"\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u306f\u3072\u3089\u304c\u306a(\u5168\u89d2)\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                            }\n                        }\n                    }\n                    for (var i=0;i &lt; posts.length; i++ ) { \/\/ \u91cd\u8907\u30c1\u30a7\u30c3\u30af\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u8ffd\u52a0\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5024\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{ \/\/ \u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306b\u3072\u3082\u3065\u304f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u304b\u3069\u3046\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                   text = obj2csv(posts);\n                   fs.writeFile(file_chatEntity, text , 'utf8', function (err) {\n                      var COMMAND = 'sudo sed -E \"s\/,\/    \/g\" '+file_chatEntity+' &gt; '+file_chatEntity_tsv; \/\/ csv\u3092tsv\u306b\u5909\u63db\n                      exec(COMMAND, function(error, stdout, stderr) { \/\/ tsv\u30d5\u30a1\u30a4\u30eb\u3092julius\u306edic\u5f62\u5f0f\u306b\u5909\u63db\n                           var COMMAND = 'iconv -f utf8 -t eucjp '+file_chatEntity_tsv+' | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; '+file_chatEntity_dic; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           \/\/ var COMMAND = 'iconv -f utf8 -t eucjp chatEntity.tsv | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; chatEntity.dic'; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           exec(COMMAND, function(error, stdout, stderr) {\n                           });\n                       }); \/\/end of exec\n                   }); \/\/ end of fs\n                } \/\/ end of if\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editDialog\"){ \/\/ \u30c0\u30a4\u30a2\u30ed\u30b0\u306e\u7de8\u96c6\n                posts = readPosts(file_chatDialog);\n                if (query.intent){ \/\/ intent\u3092\u9078\u629e\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\u3002\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\u306e\u5834\u5408\u3002\u91cd\u8907\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3002\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u91cd\u8907\u304c\u306a\u304b\u3063\u305f\u5834\u5408\u3002\u8ffd\u52a0\u3059\u308b\u3002\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5b57\u3058\u3083\u306a\u3044\u5834\u5408\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/\u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatDialog, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n\n            } else if (url_parts.pathname == \"\/setBasic\"){ \/\/ \u57fa\u672c\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data0[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/setTime\"){ \/\/ \u6642\u9593\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data1[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                yearNow=obj_config.data1[0].nowYear;\n                timeNow=obj_config.data1[0].nowTime;\n                console.log(yearNow);\n                console.log(timeNow);\n                var COMMAND = \"sudo date -s '\"+yearNow+\" \"+timeNow+\"'\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else if (url_parts.pathname == \"\/setServo\"){ \/\/ \u30b5\u30fc\u30dc\u8abf\u6574\u306e\u4fdd\u5b58\n                obj_config.data2[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                var COMMAND = \"python bezelie.py\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else { \/\/ \u8a72\u5f53\u305b\u305a\n                res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'});\n                res.write(\"NO-POST!!\");\n                res.end();\n                return;\n            } \/\/ end of if\n        }); \/\/ end of req on\n    } \/\/ end of POST request\n} \/\/ end of doRequest\n\n\/\/ ---------------------------------------------------------------------------------------------------------\n\/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u8a2d\u5b9a\nvar host = getLocalAddress().ipv4[0].address; \/\/ \u73fe\u5728\u306eIP\u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3059\u308b\u3002\ndebug('server_chat.js start \\n');\ndebug(host+'\\n');\n\n\/\/ \u30b5\u30fc\u30d0\u30fc\u306e\u8d77\u52d5\nconsole.log (\"starting node server\");\nvar server = http.createServer(); \/\/ http.server\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u308b\u3002\u623b\u5024\u306fhttp.server\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3002\nserver.on('request', routing);    \/\/ server\u3067request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\u3092\u767b\u9332\nvar port = 3000;                  \/\/ port\u306f1024\u4ee5\u4e0a\u306e\u6570\u5b57\u306a\u3089\u4f55\u3067\u3082\u3088\u3044\u3002\nserver.listen(port, host)         \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u5f85\u3061\u53d7\u3051\u72b6\u614b\u306b\u3059\u308b\u3002\nconsole.log (\"server is listening at \"+host+\":\"+port);\n<\/pre>\n<p style=\"padding-left: 30px;\">\u30fb\u30c7\u30d0\u30c3\u30b0\u3057\u305f\u3044\u3068\u304d\u306fdebug(text)\u306e\u30b3\u30e1\u30f3\u30c8\u3092\u5916\u3059\u3068\u3001\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u304cdebug.txt\u306b\u66f8\u304d\u8fbc\u307e\u308c\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<h5>GET\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406<\/h5>\n<pre class=\"height:200 lang:js range:218-287 decode:true\" title=\"server_chat.js\">\/\/ \u3079\u30bc\u30ea\u30fc\u8a2d\u5b9aWeb\u30a2\u30d7\u30ea\n\/\/ for Bezelie Edgar\n\/\/ in Node-JS\n\/\/ by Jun Toyoda (Team Bezelie)\n\/\/ From  Aug 10th 2017\n\/\/ ---------------------------------------------------------------------------------\n\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30ed\u30fc\u30c9\u3057\u3066\u5909\u6570\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066\u8aad\u307f\u8fbc\u3080\nvar http = require('http'); \/\/ http\u30a2\u30af\u30bb\u30b9\u306e\u305f\u3081\u306e\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   http.createServer(function);\nvar fs   = require('fs');   \/\/ \u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u64cd\u4f5c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   fs.readFile('file name','utf-8',callback function)\n                            \/\/   fs.readFileSync('file name','utf-8')\nvar ejs  = require('ejs');  \/\/ JS\u7528\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30a8\u30f3\u30b8\u30f3ejs(Embedded JavaScript Templates)\n                            \/\/    ejs.render(\u5909\u6570\u306b\u4ee3\u5165\u3055\u308c\u305fejs, \u7f6e\u63db\u30c7\u30fc\u30bf\u30aa\u30d6\u30b8\u30a7\u30af\u30c8);\nvar url  = require('url');  \/\/ URL\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3084\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    url.parse(request.url);\nvar qs   = require('querystring');\n                            \/\/ \u30af\u30a8\u30ea\u30fc\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3057\u3066\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    qs.parse();\nvar exec = require('child_process').exec;\n                            \/\/ \u5b50\u30d7\u30ed\u30bb\u30b9\u306e\u751f\u6210\u3068\u7ba1\u7406\u3092\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3002\n                            \/\/    exec(COMMAND, [options], callback(error, stdout, stderr) {}\n                            \/\/    option maxBuffer:\u30d0\u30c3\u30d5\u30a1\u306e\u6700\u5927\u5bb9\u91cf(byte)\n                            \/\/    error :\u30a8\u30e9\u30fc\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n                            \/\/    stdout:\u6a19\u6e96\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\n                            \/\/    stderr:\u6a19\u6e96\u30a8\u30e9\u30fc\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\nvar CSV  = require(\"comma-separated-values\");\n                            \/\/ CSV\u3092\u914d\u5217\u5909\u6570\u3084\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\nvar os   = require('os');\n                            \/\/    os.networkInterfaces();\nvar sleep = require('sleep');\n                            \/\/ \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\u7528\u30e2\u30b8\u30e5\u30fc\u30eb\n\/\/ ejs\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nvar template            = fs.readFileSync(__dirname + '\/ejs\/template.ejs', 'utf-8');\nvar top                 = fs.readFileSync(__dirname + '\/ejs\/top.ejs', 'utf-8');\nvar editBasic           = fs.readFileSync(__dirname + '\/ejs\/editBasic.ejs', 'utf-8');\nvar editChat            = fs.readFileSync(__dirname + '\/ejs\/editChat.ejs', 'utf-8');\nvar editTime            = fs.readFileSync(__dirname + '\/ejs\/editTime.ejs', 'utf-8');\nvar editServo           = fs.readFileSync(__dirname + '\/ejs\/editServo.ejs', 'utf-8');\nvar setBasic            = fs.readFileSync(__dirname + '\/ejs\/setBasic.ejs', 'utf-8');\nvar setTime             = fs.readFileSync(__dirname + '\/ejs\/setTime.ejs', 'utf-8');\nvar setServo            = fs.readFileSync(__dirname + '\/ejs\/setServo.ejs', 'utf-8');\nvar editIntent          = fs.readFileSync(__dirname + '\/ejs\/editIntent.ejs', 'utf-8');\nvar selectIntent4entity = fs.readFileSync(__dirname + '\/ejs\/selectIntent4entity.ejs', 'utf-8');\nvar editEntity          = fs.readFileSync(__dirname + '\/ejs\/editEntity.ejs', 'utf-8');\nvar selectIntent4dialog = fs.readFileSync(__dirname + '\/ejs\/selectIntent4dialog.ejs', 'utf-8');\nvar editDialog          = fs.readFileSync(__dirname + '\/ejs\/editDialog.ejs', 'utf-8');\nvar starting_pythonApp  = fs.readFileSync(__dirname + '\/ejs\/starting_pythonApp.ejs', 'utf-8');\nvar reboot              = fs.readFileSync(__dirname + '\/ejs\/reboot.ejs', 'utf-8');\nvar chatMode            = fs.readFileSync(__dirname + '\/ejs\/chatMode.ejs', 'utf-8');\nvar faceMode            = fs.readFileSync(__dirname + '\/ejs\/faceMode.ejs', 'utf-8');\nvar disableServer       = fs.readFileSync(__dirname + '\/ejs\/disableServer.ejs', 'utf-8');\nvar test                = fs.readFileSync(__dirname + '\/ejs\/test.ejs', 'utf-8');\n\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar routes = { \/\/ \u30d1\u30b9\u3054\u3068\u306e\u8868\u793a\u5185\u5bb9\u3092\u9023\u60f3\u914d\u5217\u306b\u683c\u7d0d\n    \"\/\":{\n        \"title\":\"BEZELIE\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u8a2d\u5b9a\u30c7\u30fc\u30bf\u306e\u7de8\u96c6\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":top}, \/\/ \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\n    \"\/editBasic\":{\n        \"title\":\"\u57fa\u672c\u8a2d\u5b9a\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u306e\u57fa\u672c\u7684\u306a\u8a2d\u5b9a\u3092\u884c\u3044\u307e\u3059\",\n        \"content\":editBasic},\n    \"\/editChat\":{\n        \"title\":\"\u5bfe\u8a71\u8a2d\u5b9a\",\n        \"message\":\"\uff13\u7a2e\u985e\u306e\u30c7\u30fc\u30bf\u3092\u7de8\u96c6\u3059\u308b\u3053\u3068\u3067\u3001\u5bfe\u8a71\u3092\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":editChat},\n    \"\/editTime\":{\n        \"title\":\"\u6642\u9593\u8a2d\u5b9a\",\n        \"message\":\"\u30a2\u30e9\u30fc\u30e0\u3068\u6d3b\u52d5\u6642\u9593\u306e\u8a2d\u5b9a\u3092\u3057\u307e\u3059\",\n        \"content\":editTime},\n    \"\/editServo\":{\n        \"title\":\"\u30b5\u30fc\u30dc\u8abf\u6574\",\n        \"message\":\"\u30b5\u30fc\u30dc\u306e\u521d\u671f\u4f4d\u7f6e\uff08\u89d2\u5ea6\uff09\u3092\u8abf\u6574\u3057\u307e\u3059\u3002\u5358\u4f4d\u306f\u5ea6\u3067\u3059\u3002\u30b5\u30fc\u30dc\u3092\u4e0a\u304b\u3089\u898b\u3066\u6642\u8a08\u56de\u308a\u304c\u6b63\u306e\u5024\u306b\u306a\u308a\u307e\u3059\",\n        \"content\":editServo},\n    \"\/chatMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/faceMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/disableServer\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u306b\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/editIntent\":{\n        \"title\":\"\u3010\u8cea\u554f\u5185\u5bb9\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u5185\u5bb9\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u805e\u304d\u305f\u3044\u5185\u5bb9\u306e\u3053\u3068\u3067\u3059\u3002\u3053\u306e\u6587\u5b57\u304c\u97f3\u58f0\u8a8d\u8b58\u3055\u308c\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u306e\u3067\u3001\u308f\u304b\u308a\u3084\u3059\u3044\u540d\u79f0\u3092\u3064\u3051\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editIntent},\n    \"\/selectIntent4entity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u671b\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":selectIntent4entity},\n    \"\/editEntity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u306e\u8272\u3005\u306a\u8a00\u3044\u56de\u3057\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u306e\u8a00\u3044\u56de\u3057\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u8cea\u554f\u3059\u308b\u969b\u306e\u3001\u3055\u307e\u3056\u307e\u306a\u8a00\u3044\u304b\u305f\u306e\u3053\u3068\u3067\u3059\u3002\u3072\u3089\u304c\u306a\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editEntity},\n    \"\/selectIntent4dialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u597d\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n        \"content\":selectIntent4dialog},\n    \"\/editDialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8fd4\u7b54\u5019\u88dc\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8fd4\u7b54\u5019\u88dc\u3068\u306f\u30e6\u30fc\u30b6\u30fc\u304b\u3089\u306e\u8cea\u554f\u306b\u5bfe\u3059\u308b\u3079\u30bc\u30ea\u30fc\u304b\u3089\u306e\u8fd4\u7b54\u306e\u5019\u88dc\u3067\u3059\u3002\u8907\u6570\u306e\u8fd4\u7b54\u3092\u8a2d\u5b9a\u3057\u305f\u5834\u5408\u306f\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u3070\u308c\u307e\u3059\u3002\",\n        \"content\":editDialog},\n    \"\/reboot\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":reboot},\n    \"\/starting_pythonApp\":{\n        \"title\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":starting_pythonApp},\n    \"\/setBasic\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setBasic},\n    \"\/setTime\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setTime},\n    \"\/setServo\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setServo},\n    \"\/test\":{\n        \"title\":\"\u30c6\u30b9\u30c8\",\n        \"message\":\"\u3053\u308c\u306f\u30c6\u30b9\u30c8\u7528\u306e\u30da\u30fc\u30b8\u3067\u3059\",\n        \"content\":test}\n};\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar file_chatIntent            = \"\/home\/pi\/bezelie\/chatIntent.csv\";\nvar file_chatEntity            = \"\/home\/pi\/bezelie\/chatEntity.csv\";\nvar file_chatDialog            = \"\/home\/pi\/bezelie\/chatDialog.csv\";\nvar file_chatEntity_tsv        = \"\/home\/pi\/bezelie\/chatEntity.tsv\";\nvar file_chatEntity_dic        = \"\/home\/pi\/bezelie\/chatEntity.dic\";\nvar file_debug                 = \"\/home\/pi\/bezelie\/debug.txt\";\nvar file_data_chat             = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\";\nvar file_restart_app           = \"\/home\/pi\/bezelie\/edgar\/restart_app.sh\";\nvar file_exec_talk             = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\";\nvar file_setting_chatMode      = \"\/home\/pi\/bezelie\/edgar\/setting_chatMode.sh\";\nvar file_setting_faceMode      = \"\/home\/pi\/bezelie\/edgar\/setting_faceMode.sh\";\nvar file_setting_disableServer = \"\/home\/pi\/bezelie\/edgar\/setting_disableServer.sh\";\nvar errorMsg = \"\"; \/\/ \u3053\u308c\u304c\u7a7a\u6b04\u306e\u3068\u304d\u306f\u30a8\u30e9\u30fc\u7121\u3057\nvar posts = \"\";    \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3067\u9001\u3089\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\nvar intent = \"\";   \/\/ \u4eca\u56de\u9078\u629e\u3055\u308c\u305fintent\uff08\u5358\u6570\uff09\n\n\/\/ \u95a2\u6570\u5b9a\u7fa9\nfunction getLocalAddress() {                    \/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u53d6\u5f97\n    var ifacesObj = {}\n    ifacesObj.ipv4 = [];\n    ifacesObj.ipv6 = [];\n    var interfaces = os.networkInterfaces();\n\n    for (var dev in interfaces) {\n        interfaces[dev].forEach(function(details){\n            if (!details.internal){\n                switch(details.family){\n                    case \"IPv4\":\n                        ifacesObj.ipv4.push({name:dev, address:details.address});\n                    break;\n                    case \"IPv6\":\n                        ifacesObj.ipv6.push({name:dev, address:details.address})\n                    break;\n                }\n            }\n        });\n    }\n    return ifacesObj;\n};\n\nfunction pageWrite (res){                      \/\/ \u30da\u30fc\u30b8\u63cf\u753b\n    content = ejs.render( template, {\n        title: routes[url_parts.pathname].title,\n        errorMsg: errorMsg,\n        content: ejs.render( routes[url_parts.pathname].content, {\n            message: routes[url_parts.pathname].message,  \/\/ pathname\u306b\u5fdc\u3058\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6307\u5b9a\n            posts: posts,  \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3055\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\n            intent: intent \/\/ \u4eca\u56de\u9078\u3070\u308c\u305f\u30a4\u30f3\u30c6\u30f3\u30c8\n        })\n    });\n    res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n    res.write(content);\n    res.end();\n}\n\nfunction delChk (query, posts, intent){       \/\/ \u524a\u9664\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u756a\u53f7\u304c\u3001\u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u3082\u306e\u304b\u3092\u8abf\u3079\u308b\n    errorMsg = \"\u756a\u53f7\u304c\u9055\u3044\u307e\u3059\";\n    for (var i=0;i &lt; posts.length; i++ ) {\n        if (posts[i][0]==intent &amp;&amp; i==query.delNum){\n            errorMsg = \"\";\n        }\n    }\n    return errorMsg;\n}\n\nfunction readPosts(file){                     \/\/\n    var text = fs.readFileSync(file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    \/\/var text = fs.readFileSync(__dirname + \"\/\" + file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    posts = new CSV(text, {header:false}).parse(); \/\/  TEXT\u3092CSV\u3092\u4ef2\u4ecb\u3057\u3066\u30ea\u30b9\u30c8\u5909\u6570\u306b\u5909\u63db\u3059\u308b\n    return posts;\n}\n\nfunction obj2csv(posts){                     \/\/\n    text = '';\n    for (var i=0;i &lt; posts.length; i++ ) {\n        text = text+posts[i]+'\\n';\n        }\n    return text;\n}\n\nfunction debug(text){                        \/\/\n    \/\/fs.appendFileSync(file_debug, text, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n}\n\n\/\/-------------------------------------------------------------------------------------------------------\n\/\/ \u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\nfunction routing(req, res){ \/\/ request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u3089\u5b9f\u884c\u3055\u308c\u308b\u95a2\u6570\n    url_parts = url.parse(req.url); \/\/ URL\u60c5\u5831\u3092\u30d1\u30fc\u30b9\u51e6\u7406\n    errorMsg = \"\";\n    \/\/ \u60f3\u5b9a\u3057\u3066\u3044\u306a\u3044\u30da\u30fc\u30b8\u306b\u98db\u307c\u3046\u3068\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\n    if (routes[url_parts.pathname] == null){ \/\/ \u30d1\u30b9\u304c\u5909\u6570routes\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u30a8\u30e9\u30fc\u3092\u8868\u793a\u3059\u308b\n        content = \"&lt;h1&gt;NOT FOUND PAGE:\" + req.url + \"&lt;\/h1&gt;\"\n        res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n        res.write(content);\n        res.end();\n        return;\n    }\n    \/\/ GET\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406  -------------------------------------------------------------------------------\n    if (req.method === \"GET\"){\n        if (url_parts.pathname === \"\/editIntent\" || url_parts.pathname === \"\/selectIntent4entity\" || url_parts.pathname === \"\/selectIntent4dialog\"){\n            posts = readPosts(file_chatIntent);\n            pageWrite(res);\n            return;\n        } else if (url_parts.pathname === \"\/editBasic\" || url_parts.pathname === \"\/editTime\" || url_parts.pathname === \"\/editServo\"){ \/\/\n            var json = fs.readFileSync(file_data_chat, \"utf-8\");  \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n            obj_config = JSON.parse(json); \/\/ JSON\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u3002ejs\u304b\u3089\u3082\u8aad\u3081\u308b\u3088\u3046\u306b\u30b0\u30ed\u30fc\u30d0\u30eb\u3067\u5b9a\u7fa9\u3059\u308b\n            pageWrite(res)\n        } else if (url_parts.pathname == \"\/starting_pythonApp\"){ \/\/ Julius\u3068python\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\n            pageWrite(res);\n            debug('restart function start \\n');\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"bash \"+file_restart_app;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n            debug('restart function end \\n');\n        } else if (url_parts.pathname == \"\/reboot\"){ \/\/ \u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = 'sudo reboot';\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/chatMode\"){ \/\/ \u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_chatMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/faceMode\"){ \/\/ \u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_faceMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/disableServer\"){ \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_disableServer;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else {\n            pageWrite(res);\n        }\/\/ end of if\n    } \/\/ end of get request\n    \/\/ POST\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406 -------------------------------------------------------------------------------\n    if (req.method === 'POST') {\n        req.data = \"\";\n        req.on(\"data\", function(data) {\n            req.data += data;\n        });\n        req.on(\"end\", function() {\n            var query = qs.parse(req.data); \/\/ \u5168\u53d7\u4fe1\u30c7\u30fc\u30bf\u3092querry string\u3067\u30d1\u30fc\u30b9\u3059\u308b\u3002\n        \/\/ ----------------------------------------------------------------------------------------------\n            if (url_parts.pathname == \"\/editIntent\"){ \/\/ \u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u7de8\u96c6\n                posts = readPosts(file_chatIntent);\n                if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){\n                        posts.push(['common',query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    } else if(query.delNum &gt;= posts.length) {\n                        errorMsg = \"\u6570\u5b57\u304c\u5927\u304d\u3059\u304e\u307e\u3059\";\n                    } else {\n                        intent = posts[query.delNum][1];\n                        posts = readPosts(file_chatEntity);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatDialog);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8fd4\u7b54\u5019\u88dc\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatIntent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u305f\u3081\u3002\n                }\n                if (errorMsg == \"\"){\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatIntent, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editEntity\"){ \/\/ \u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u7de8\u96c6\n                posts = readPosts(file_chatEntity);\n                if (query.intent){ \/\/ selectIntent\u304b\u3089\u6765\u305f\u5834\u5408\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (i=0;i&lt;query.newItem.length;i++){ \/\/ \u3072\u3089\u304c\u306a\u304b\u30c1\u30a7\u30c3\u30af\n                        var unicode = query.newItem.charCodeAt(i);\n                        if ( unicode&lt;0x3040 || unicode&gt;0x309f ){\n                            if ( unicode != 0x30fc ){ \/\/ chou-on\n                                errorMsg = \"\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u306f\u3072\u3089\u304c\u306a(\u5168\u89d2)\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                            }\n                        }\n                    }\n                    for (var i=0;i &lt; posts.length; i++ ) { \/\/ \u91cd\u8907\u30c1\u30a7\u30c3\u30af\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u8ffd\u52a0\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5024\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{ \/\/ \u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306b\u3072\u3082\u3065\u304f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u304b\u3069\u3046\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                   text = obj2csv(posts);\n                   fs.writeFile(file_chatEntity, text , 'utf8', function (err) {\n                      var COMMAND = 'sudo sed -E \"s\/,\/    \/g\" '+file_chatEntity+' &gt; '+file_chatEntity_tsv; \/\/ csv\u3092tsv\u306b\u5909\u63db\n                      exec(COMMAND, function(error, stdout, stderr) { \/\/ tsv\u30d5\u30a1\u30a4\u30eb\u3092julius\u306edic\u5f62\u5f0f\u306b\u5909\u63db\n                           var COMMAND = 'iconv -f utf8 -t eucjp '+file_chatEntity_tsv+' | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; '+file_chatEntity_dic; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           \/\/ var COMMAND = 'iconv -f utf8 -t eucjp chatEntity.tsv | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; chatEntity.dic'; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           exec(COMMAND, function(error, stdout, stderr) {\n                           });\n                       }); \/\/end of exec\n                   }); \/\/ end of fs\n                } \/\/ end of if\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editDialog\"){ \/\/ \u30c0\u30a4\u30a2\u30ed\u30b0\u306e\u7de8\u96c6\n                posts = readPosts(file_chatDialog);\n                if (query.intent){ \/\/ intent\u3092\u9078\u629e\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\u3002\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\u306e\u5834\u5408\u3002\u91cd\u8907\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3002\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u91cd\u8907\u304c\u306a\u304b\u3063\u305f\u5834\u5408\u3002\u8ffd\u52a0\u3059\u308b\u3002\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5b57\u3058\u3083\u306a\u3044\u5834\u5408\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/\u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatDialog, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n\n            } else if (url_parts.pathname == \"\/setBasic\"){ \/\/ \u57fa\u672c\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data0[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/setTime\"){ \/\/ \u6642\u9593\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data1[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                yearNow=obj_config.data1[0].nowYear;\n                timeNow=obj_config.data1[0].nowTime;\n                console.log(yearNow);\n                console.log(timeNow);\n                var COMMAND = \"sudo date -s '\"+yearNow+\" \"+timeNow+\"'\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else if (url_parts.pathname == \"\/setServo\"){ \/\/ \u30b5\u30fc\u30dc\u8abf\u6574\u306e\u4fdd\u5b58\n                obj_config.data2[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                var COMMAND = \"python bezelie.py\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else { \/\/ \u8a72\u5f53\u305b\u305a\n                res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'});\n                res.write(\"NO-POST!!\");\n                res.end();\n                return;\n            } \/\/ end of if\n        }); \/\/ end of req on\n    } \/\/ end of POST request\n} \/\/ end of doRequest\n\n\/\/ ---------------------------------------------------------------------------------------------------------\n\/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u8a2d\u5b9a\nvar host = getLocalAddress().ipv4[0].address; \/\/ \u73fe\u5728\u306eIP\u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3059\u308b\u3002\ndebug('server_chat.js start \\n');\ndebug(host+'\\n');\n\n\/\/ \u30b5\u30fc\u30d0\u30fc\u306e\u8d77\u52d5\nconsole.log (\"starting node server\");\nvar server = http.createServer(); \/\/ http.server\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u308b\u3002\u623b\u5024\u306fhttp.server\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3002\nserver.on('request', routing);    \/\/ server\u3067request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\u3092\u767b\u9332\nvar port = 3000;                  \/\/ port\u306f1024\u4ee5\u4e0a\u306e\u6570\u5b57\u306a\u3089\u4f55\u3067\u3082\u3088\u3044\u3002\nserver.listen(port, host)         \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u5f85\u3061\u53d7\u3051\u72b6\u614b\u306b\u3059\u308b\u3002\nconsole.log (\"server is listening at \"+host+\":\"+port);\n<\/pre>\n<p style=\"padding-left: 30px;\">\u30fb\u30da\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u308b\u3068\u540c\u6642\u306b\u51e6\u7406\u304c\u5b9f\u884c\u3055\u308c\u308b\u30bf\u30a4\u30d7\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u51e6\u7406\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<h5>POST\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406<\/h5>\n<pre class=\"height:200 lang:js range:288-452 decode:true\" title=\"server_chat.js\">\/\/ \u3079\u30bc\u30ea\u30fc\u8a2d\u5b9aWeb\u30a2\u30d7\u30ea\n\/\/ for Bezelie Edgar\n\/\/ in Node-JS\n\/\/ by Jun Toyoda (Team Bezelie)\n\/\/ From  Aug 10th 2017\n\/\/ ---------------------------------------------------------------------------------\n\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30ed\u30fc\u30c9\u3057\u3066\u5909\u6570\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066\u8aad\u307f\u8fbc\u3080\nvar http = require('http'); \/\/ http\u30a2\u30af\u30bb\u30b9\u306e\u305f\u3081\u306e\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   http.createServer(function);\nvar fs   = require('fs');   \/\/ \u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u64cd\u4f5c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   fs.readFile('file name','utf-8',callback function)\n                            \/\/   fs.readFileSync('file name','utf-8')\nvar ejs  = require('ejs');  \/\/ JS\u7528\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30a8\u30f3\u30b8\u30f3ejs(Embedded JavaScript Templates)\n                            \/\/    ejs.render(\u5909\u6570\u306b\u4ee3\u5165\u3055\u308c\u305fejs, \u7f6e\u63db\u30c7\u30fc\u30bf\u30aa\u30d6\u30b8\u30a7\u30af\u30c8);\nvar url  = require('url');  \/\/ URL\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3084\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    url.parse(request.url);\nvar qs   = require('querystring');\n                            \/\/ \u30af\u30a8\u30ea\u30fc\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3057\u3066\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    qs.parse();\nvar exec = require('child_process').exec;\n                            \/\/ \u5b50\u30d7\u30ed\u30bb\u30b9\u306e\u751f\u6210\u3068\u7ba1\u7406\u3092\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3002\n                            \/\/    exec(COMMAND, [options], callback(error, stdout, stderr) {}\n                            \/\/    option maxBuffer:\u30d0\u30c3\u30d5\u30a1\u306e\u6700\u5927\u5bb9\u91cf(byte)\n                            \/\/    error :\u30a8\u30e9\u30fc\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n                            \/\/    stdout:\u6a19\u6e96\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\n                            \/\/    stderr:\u6a19\u6e96\u30a8\u30e9\u30fc\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\nvar CSV  = require(\"comma-separated-values\");\n                            \/\/ CSV\u3092\u914d\u5217\u5909\u6570\u3084\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\nvar os   = require('os');\n                            \/\/    os.networkInterfaces();\nvar sleep = require('sleep');\n                            \/\/ \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\u7528\u30e2\u30b8\u30e5\u30fc\u30eb\n\/\/ ejs\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nvar template            = fs.readFileSync(__dirname + '\/ejs\/template.ejs', 'utf-8');\nvar top                 = fs.readFileSync(__dirname + '\/ejs\/top.ejs', 'utf-8');\nvar editBasic           = fs.readFileSync(__dirname + '\/ejs\/editBasic.ejs', 'utf-8');\nvar editChat            = fs.readFileSync(__dirname + '\/ejs\/editChat.ejs', 'utf-8');\nvar editTime            = fs.readFileSync(__dirname + '\/ejs\/editTime.ejs', 'utf-8');\nvar editServo           = fs.readFileSync(__dirname + '\/ejs\/editServo.ejs', 'utf-8');\nvar setBasic            = fs.readFileSync(__dirname + '\/ejs\/setBasic.ejs', 'utf-8');\nvar setTime             = fs.readFileSync(__dirname + '\/ejs\/setTime.ejs', 'utf-8');\nvar setServo            = fs.readFileSync(__dirname + '\/ejs\/setServo.ejs', 'utf-8');\nvar editIntent          = fs.readFileSync(__dirname + '\/ejs\/editIntent.ejs', 'utf-8');\nvar selectIntent4entity = fs.readFileSync(__dirname + '\/ejs\/selectIntent4entity.ejs', 'utf-8');\nvar editEntity          = fs.readFileSync(__dirname + '\/ejs\/editEntity.ejs', 'utf-8');\nvar selectIntent4dialog = fs.readFileSync(__dirname + '\/ejs\/selectIntent4dialog.ejs', 'utf-8');\nvar editDialog          = fs.readFileSync(__dirname + '\/ejs\/editDialog.ejs', 'utf-8');\nvar starting_pythonApp  = fs.readFileSync(__dirname + '\/ejs\/starting_pythonApp.ejs', 'utf-8');\nvar reboot              = fs.readFileSync(__dirname + '\/ejs\/reboot.ejs', 'utf-8');\nvar chatMode            = fs.readFileSync(__dirname + '\/ejs\/chatMode.ejs', 'utf-8');\nvar faceMode            = fs.readFileSync(__dirname + '\/ejs\/faceMode.ejs', 'utf-8');\nvar disableServer       = fs.readFileSync(__dirname + '\/ejs\/disableServer.ejs', 'utf-8');\nvar test                = fs.readFileSync(__dirname + '\/ejs\/test.ejs', 'utf-8');\n\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar routes = { \/\/ \u30d1\u30b9\u3054\u3068\u306e\u8868\u793a\u5185\u5bb9\u3092\u9023\u60f3\u914d\u5217\u306b\u683c\u7d0d\n    \"\/\":{\n        \"title\":\"BEZELIE\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u8a2d\u5b9a\u30c7\u30fc\u30bf\u306e\u7de8\u96c6\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":top}, \/\/ \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\n    \"\/editBasic\":{\n        \"title\":\"\u57fa\u672c\u8a2d\u5b9a\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u306e\u57fa\u672c\u7684\u306a\u8a2d\u5b9a\u3092\u884c\u3044\u307e\u3059\",\n        \"content\":editBasic},\n    \"\/editChat\":{\n        \"title\":\"\u5bfe\u8a71\u8a2d\u5b9a\",\n        \"message\":\"\uff13\u7a2e\u985e\u306e\u30c7\u30fc\u30bf\u3092\u7de8\u96c6\u3059\u308b\u3053\u3068\u3067\u3001\u5bfe\u8a71\u3092\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":editChat},\n    \"\/editTime\":{\n        \"title\":\"\u6642\u9593\u8a2d\u5b9a\",\n        \"message\":\"\u30a2\u30e9\u30fc\u30e0\u3068\u6d3b\u52d5\u6642\u9593\u306e\u8a2d\u5b9a\u3092\u3057\u307e\u3059\",\n        \"content\":editTime},\n    \"\/editServo\":{\n        \"title\":\"\u30b5\u30fc\u30dc\u8abf\u6574\",\n        \"message\":\"\u30b5\u30fc\u30dc\u306e\u521d\u671f\u4f4d\u7f6e\uff08\u89d2\u5ea6\uff09\u3092\u8abf\u6574\u3057\u307e\u3059\u3002\u5358\u4f4d\u306f\u5ea6\u3067\u3059\u3002\u30b5\u30fc\u30dc\u3092\u4e0a\u304b\u3089\u898b\u3066\u6642\u8a08\u56de\u308a\u304c\u6b63\u306e\u5024\u306b\u306a\u308a\u307e\u3059\",\n        \"content\":editServo},\n    \"\/chatMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/faceMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/disableServer\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u306b\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/editIntent\":{\n        \"title\":\"\u3010\u8cea\u554f\u5185\u5bb9\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u5185\u5bb9\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u805e\u304d\u305f\u3044\u5185\u5bb9\u306e\u3053\u3068\u3067\u3059\u3002\u3053\u306e\u6587\u5b57\u304c\u97f3\u58f0\u8a8d\u8b58\u3055\u308c\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u306e\u3067\u3001\u308f\u304b\u308a\u3084\u3059\u3044\u540d\u79f0\u3092\u3064\u3051\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editIntent},\n    \"\/selectIntent4entity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u671b\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":selectIntent4entity},\n    \"\/editEntity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u306e\u8272\u3005\u306a\u8a00\u3044\u56de\u3057\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u306e\u8a00\u3044\u56de\u3057\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u8cea\u554f\u3059\u308b\u969b\u306e\u3001\u3055\u307e\u3056\u307e\u306a\u8a00\u3044\u304b\u305f\u306e\u3053\u3068\u3067\u3059\u3002\u3072\u3089\u304c\u306a\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editEntity},\n    \"\/selectIntent4dialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u597d\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n        \"content\":selectIntent4dialog},\n    \"\/editDialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8fd4\u7b54\u5019\u88dc\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8fd4\u7b54\u5019\u88dc\u3068\u306f\u30e6\u30fc\u30b6\u30fc\u304b\u3089\u306e\u8cea\u554f\u306b\u5bfe\u3059\u308b\u3079\u30bc\u30ea\u30fc\u304b\u3089\u306e\u8fd4\u7b54\u306e\u5019\u88dc\u3067\u3059\u3002\u8907\u6570\u306e\u8fd4\u7b54\u3092\u8a2d\u5b9a\u3057\u305f\u5834\u5408\u306f\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u3070\u308c\u307e\u3059\u3002\",\n        \"content\":editDialog},\n    \"\/reboot\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":reboot},\n    \"\/starting_pythonApp\":{\n        \"title\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":starting_pythonApp},\n    \"\/setBasic\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setBasic},\n    \"\/setTime\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setTime},\n    \"\/setServo\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setServo},\n    \"\/test\":{\n        \"title\":\"\u30c6\u30b9\u30c8\",\n        \"message\":\"\u3053\u308c\u306f\u30c6\u30b9\u30c8\u7528\u306e\u30da\u30fc\u30b8\u3067\u3059\",\n        \"content\":test}\n};\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar file_chatIntent            = \"\/home\/pi\/bezelie\/chatIntent.csv\";\nvar file_chatEntity            = \"\/home\/pi\/bezelie\/chatEntity.csv\";\nvar file_chatDialog            = \"\/home\/pi\/bezelie\/chatDialog.csv\";\nvar file_chatEntity_tsv        = \"\/home\/pi\/bezelie\/chatEntity.tsv\";\nvar file_chatEntity_dic        = \"\/home\/pi\/bezelie\/chatEntity.dic\";\nvar file_debug                 = \"\/home\/pi\/bezelie\/debug.txt\";\nvar file_data_chat             = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\";\nvar file_restart_app           = \"\/home\/pi\/bezelie\/edgar\/restart_app.sh\";\nvar file_exec_talk             = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\";\nvar file_setting_chatMode      = \"\/home\/pi\/bezelie\/edgar\/setting_chatMode.sh\";\nvar file_setting_faceMode      = \"\/home\/pi\/bezelie\/edgar\/setting_faceMode.sh\";\nvar file_setting_disableServer = \"\/home\/pi\/bezelie\/edgar\/setting_disableServer.sh\";\nvar errorMsg = \"\"; \/\/ \u3053\u308c\u304c\u7a7a\u6b04\u306e\u3068\u304d\u306f\u30a8\u30e9\u30fc\u7121\u3057\nvar posts = \"\";    \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3067\u9001\u3089\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\nvar intent = \"\";   \/\/ \u4eca\u56de\u9078\u629e\u3055\u308c\u305fintent\uff08\u5358\u6570\uff09\n\n\/\/ \u95a2\u6570\u5b9a\u7fa9\nfunction getLocalAddress() {                    \/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u53d6\u5f97\n    var ifacesObj = {}\n    ifacesObj.ipv4 = [];\n    ifacesObj.ipv6 = [];\n    var interfaces = os.networkInterfaces();\n\n    for (var dev in interfaces) {\n        interfaces[dev].forEach(function(details){\n            if (!details.internal){\n                switch(details.family){\n                    case \"IPv4\":\n                        ifacesObj.ipv4.push({name:dev, address:details.address});\n                    break;\n                    case \"IPv6\":\n                        ifacesObj.ipv6.push({name:dev, address:details.address})\n                    break;\n                }\n            }\n        });\n    }\n    return ifacesObj;\n};\n\nfunction pageWrite (res){                      \/\/ \u30da\u30fc\u30b8\u63cf\u753b\n    content = ejs.render( template, {\n        title: routes[url_parts.pathname].title,\n        errorMsg: errorMsg,\n        content: ejs.render( routes[url_parts.pathname].content, {\n            message: routes[url_parts.pathname].message,  \/\/ pathname\u306b\u5fdc\u3058\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6307\u5b9a\n            posts: posts,  \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3055\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\n            intent: intent \/\/ \u4eca\u56de\u9078\u3070\u308c\u305f\u30a4\u30f3\u30c6\u30f3\u30c8\n        })\n    });\n    res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n    res.write(content);\n    res.end();\n}\n\nfunction delChk (query, posts, intent){       \/\/ \u524a\u9664\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u756a\u53f7\u304c\u3001\u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u3082\u306e\u304b\u3092\u8abf\u3079\u308b\n    errorMsg = \"\u756a\u53f7\u304c\u9055\u3044\u307e\u3059\";\n    for (var i=0;i &lt; posts.length; i++ ) {\n        if (posts[i][0]==intent &amp;&amp; i==query.delNum){\n            errorMsg = \"\";\n        }\n    }\n    return errorMsg;\n}\n\nfunction readPosts(file){                     \/\/\n    var text = fs.readFileSync(file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    \/\/var text = fs.readFileSync(__dirname + \"\/\" + file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    posts = new CSV(text, {header:false}).parse(); \/\/  TEXT\u3092CSV\u3092\u4ef2\u4ecb\u3057\u3066\u30ea\u30b9\u30c8\u5909\u6570\u306b\u5909\u63db\u3059\u308b\n    return posts;\n}\n\nfunction obj2csv(posts){                     \/\/\n    text = '';\n    for (var i=0;i &lt; posts.length; i++ ) {\n        text = text+posts[i]+'\\n';\n        }\n    return text;\n}\n\nfunction debug(text){                        \/\/\n    \/\/fs.appendFileSync(file_debug, text, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n}\n\n\/\/-------------------------------------------------------------------------------------------------------\n\/\/ \u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\nfunction routing(req, res){ \/\/ request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u3089\u5b9f\u884c\u3055\u308c\u308b\u95a2\u6570\n    url_parts = url.parse(req.url); \/\/ URL\u60c5\u5831\u3092\u30d1\u30fc\u30b9\u51e6\u7406\n    errorMsg = \"\";\n    \/\/ \u60f3\u5b9a\u3057\u3066\u3044\u306a\u3044\u30da\u30fc\u30b8\u306b\u98db\u307c\u3046\u3068\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\n    if (routes[url_parts.pathname] == null){ \/\/ \u30d1\u30b9\u304c\u5909\u6570routes\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u30a8\u30e9\u30fc\u3092\u8868\u793a\u3059\u308b\n        content = \"&lt;h1&gt;NOT FOUND PAGE:\" + req.url + \"&lt;\/h1&gt;\"\n        res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n        res.write(content);\n        res.end();\n        return;\n    }\n    \/\/ GET\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406  -------------------------------------------------------------------------------\n    if (req.method === \"GET\"){\n        if (url_parts.pathname === \"\/editIntent\" || url_parts.pathname === \"\/selectIntent4entity\" || url_parts.pathname === \"\/selectIntent4dialog\"){\n            posts = readPosts(file_chatIntent);\n            pageWrite(res);\n            return;\n        } else if (url_parts.pathname === \"\/editBasic\" || url_parts.pathname === \"\/editTime\" || url_parts.pathname === \"\/editServo\"){ \/\/\n            var json = fs.readFileSync(file_data_chat, \"utf-8\");  \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n            obj_config = JSON.parse(json); \/\/ JSON\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u3002ejs\u304b\u3089\u3082\u8aad\u3081\u308b\u3088\u3046\u306b\u30b0\u30ed\u30fc\u30d0\u30eb\u3067\u5b9a\u7fa9\u3059\u308b\n            pageWrite(res)\n        } else if (url_parts.pathname == \"\/starting_pythonApp\"){ \/\/ Julius\u3068python\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\n            pageWrite(res);\n            debug('restart function start \\n');\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"bash \"+file_restart_app;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n            debug('restart function end \\n');\n        } else if (url_parts.pathname == \"\/reboot\"){ \/\/ \u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = 'sudo reboot';\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/chatMode\"){ \/\/ \u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_chatMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/faceMode\"){ \/\/ \u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_faceMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/disableServer\"){ \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_disableServer;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else {\n            pageWrite(res);\n        }\/\/ end of if\n    } \/\/ end of get request\n    \/\/ POST\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406 -------------------------------------------------------------------------------\n    if (req.method === 'POST') {\n        req.data = \"\";\n        req.on(\"data\", function(data) {\n            req.data += data;\n        });\n        req.on(\"end\", function() {\n            var query = qs.parse(req.data); \/\/ \u5168\u53d7\u4fe1\u30c7\u30fc\u30bf\u3092querry string\u3067\u30d1\u30fc\u30b9\u3059\u308b\u3002\n        \/\/ ----------------------------------------------------------------------------------------------\n            if (url_parts.pathname == \"\/editIntent\"){ \/\/ \u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u7de8\u96c6\n                posts = readPosts(file_chatIntent);\n                if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){\n                        posts.push(['common',query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    } else if(query.delNum &gt;= posts.length) {\n                        errorMsg = \"\u6570\u5b57\u304c\u5927\u304d\u3059\u304e\u307e\u3059\";\n                    } else {\n                        intent = posts[query.delNum][1];\n                        posts = readPosts(file_chatEntity);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatDialog);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8fd4\u7b54\u5019\u88dc\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatIntent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u305f\u3081\u3002\n                }\n                if (errorMsg == \"\"){\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatIntent, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editEntity\"){ \/\/ \u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u7de8\u96c6\n                posts = readPosts(file_chatEntity);\n                if (query.intent){ \/\/ selectIntent\u304b\u3089\u6765\u305f\u5834\u5408\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (i=0;i&lt;query.newItem.length;i++){ \/\/ \u3072\u3089\u304c\u306a\u304b\u30c1\u30a7\u30c3\u30af\n                        var unicode = query.newItem.charCodeAt(i);\n                        if ( unicode&lt;0x3040 || unicode&gt;0x309f ){\n                            if ( unicode != 0x30fc ){ \/\/ chou-on\n                                errorMsg = \"\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u306f\u3072\u3089\u304c\u306a(\u5168\u89d2)\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                            }\n                        }\n                    }\n                    for (var i=0;i &lt; posts.length; i++ ) { \/\/ \u91cd\u8907\u30c1\u30a7\u30c3\u30af\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u8ffd\u52a0\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5024\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{ \/\/ \u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306b\u3072\u3082\u3065\u304f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u304b\u3069\u3046\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                   text = obj2csv(posts);\n                   fs.writeFile(file_chatEntity, text , 'utf8', function (err) {\n                      var COMMAND = 'sudo sed -E \"s\/,\/    \/g\" '+file_chatEntity+' &gt; '+file_chatEntity_tsv; \/\/ csv\u3092tsv\u306b\u5909\u63db\n                      exec(COMMAND, function(error, stdout, stderr) { \/\/ tsv\u30d5\u30a1\u30a4\u30eb\u3092julius\u306edic\u5f62\u5f0f\u306b\u5909\u63db\n                           var COMMAND = 'iconv -f utf8 -t eucjp '+file_chatEntity_tsv+' | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; '+file_chatEntity_dic; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           \/\/ var COMMAND = 'iconv -f utf8 -t eucjp chatEntity.tsv | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; chatEntity.dic'; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           exec(COMMAND, function(error, stdout, stderr) {\n                           });\n                       }); \/\/end of exec\n                   }); \/\/ end of fs\n                } \/\/ end of if\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editDialog\"){ \/\/ \u30c0\u30a4\u30a2\u30ed\u30b0\u306e\u7de8\u96c6\n                posts = readPosts(file_chatDialog);\n                if (query.intent){ \/\/ intent\u3092\u9078\u629e\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\u3002\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\u306e\u5834\u5408\u3002\u91cd\u8907\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3002\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u91cd\u8907\u304c\u306a\u304b\u3063\u305f\u5834\u5408\u3002\u8ffd\u52a0\u3059\u308b\u3002\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5b57\u3058\u3083\u306a\u3044\u5834\u5408\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/\u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatDialog, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n\n            } else if (url_parts.pathname == \"\/setBasic\"){ \/\/ \u57fa\u672c\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data0[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/setTime\"){ \/\/ \u6642\u9593\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data1[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                yearNow=obj_config.data1[0].nowYear;\n                timeNow=obj_config.data1[0].nowTime;\n                console.log(yearNow);\n                console.log(timeNow);\n                var COMMAND = \"sudo date -s '\"+yearNow+\" \"+timeNow+\"'\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else if (url_parts.pathname == \"\/setServo\"){ \/\/ \u30b5\u30fc\u30dc\u8abf\u6574\u306e\u4fdd\u5b58\n                obj_config.data2[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                var COMMAND = \"python bezelie.py\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else { \/\/ \u8a72\u5f53\u305b\u305a\n                res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'});\n                res.write(\"NO-POST!!\");\n                res.end();\n                return;\n            } \/\/ end of if\n        }); \/\/ end of req on\n    } \/\/ end of POST request\n} \/\/ end of doRequest\n\n\/\/ ---------------------------------------------------------------------------------------------------------\n\/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u8a2d\u5b9a\nvar host = getLocalAddress().ipv4[0].address; \/\/ \u73fe\u5728\u306eIP\u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3059\u308b\u3002\ndebug('server_chat.js start \\n');\ndebug(host+'\\n');\n\n\/\/ \u30b5\u30fc\u30d0\u30fc\u306e\u8d77\u52d5\nconsole.log (\"starting node server\");\nvar server = http.createServer(); \/\/ http.server\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u308b\u3002\u623b\u5024\u306fhttp.server\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3002\nserver.on('request', routing);    \/\/ server\u3067request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\u3092\u767b\u9332\nvar port = 3000;                  \/\/ port\u306f1024\u4ee5\u4e0a\u306e\u6570\u5b57\u306a\u3089\u4f55\u3067\u3082\u3088\u3044\u3002\nserver.listen(port, host)         \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u5f85\u3061\u53d7\u3051\u72b6\u614b\u306b\u3059\u308b\u3002\nconsole.log (\"server is listening at \"+host+\":\"+port);\n<\/pre>\n<p style=\"padding-left: 30px;\">\u30fb\u30e6\u30fc\u30b6\u30fc\u306b\u3088\u3063\u3066\u5165\u529b\u3055\u308c\u305f\u60c5\u5831\u3092\u51e6\u7406\u3059\u308b\u30ea\u30af\u30a8\u30b9\u30c8\u3067\u3059\u3002<\/p>\n<h5>\u8d77\u52d5\u51e6\u7406<\/h5>\n<pre class=\"height:200 lang:js range:452-600 decode:true \" title=\"server_chat.js\">\/\/ \u3079\u30bc\u30ea\u30fc\u8a2d\u5b9aWeb\u30a2\u30d7\u30ea\n\/\/ for Bezelie Edgar\n\/\/ in Node-JS\n\/\/ by Jun Toyoda (Team Bezelie)\n\/\/ From  Aug 10th 2017\n\/\/ ---------------------------------------------------------------------------------\n\/\/ \u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u30ed\u30fc\u30c9\u3057\u3066\u5909\u6570\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u3057\u3066\u8aad\u307f\u8fbc\u3080\nvar http = require('http'); \/\/ http\u30a2\u30af\u30bb\u30b9\u306e\u305f\u3081\u306e\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   http.createServer(function);\nvar fs   = require('fs');   \/\/ \u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3092\u64cd\u4f5c\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/   fs.readFile('file name','utf-8',callback function)\n                            \/\/   fs.readFileSync('file name','utf-8')\nvar ejs  = require('ejs');  \/\/ JS\u7528\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30a8\u30f3\u30b8\u30f3ejs(Embedded JavaScript Templates)\n                            \/\/    ejs.render(\u5909\u6570\u306b\u4ee3\u5165\u3055\u308c\u305fejs, \u7f6e\u63db\u30c7\u30fc\u30bf\u30aa\u30d6\u30b8\u30a7\u30af\u30c8);\nvar url  = require('url');  \/\/ URL\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3084\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    url.parse(request.url);\nvar qs   = require('querystring');\n                            \/\/ \u30af\u30a8\u30ea\u30fc\u6587\u5b57\u5217\u3092\u30d1\u30fc\u30b9\u3057\u3066\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\n                            \/\/    qs.parse();\nvar exec = require('child_process').exec;\n                            \/\/ \u5b50\u30d7\u30ed\u30bb\u30b9\u306e\u751f\u6210\u3068\u7ba1\u7406\u3092\u3059\u308b\u30e2\u30b8\u30e5\u30fc\u30eb\u3002\n                            \/\/    exec(COMMAND, [options], callback(error, stdout, stderr) {}\n                            \/\/    option maxBuffer:\u30d0\u30c3\u30d5\u30a1\u306e\u6700\u5927\u5bb9\u91cf(byte)\n                            \/\/    error :\u30a8\u30e9\u30fc\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n                            \/\/    stdout:\u6a19\u6e96\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\n                            \/\/    stderr:\u6a19\u6e96\u30a8\u30e9\u30fc\u51fa\u529b\u306b\u51fa\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\nvar CSV  = require(\"comma-separated-values\");\n                            \/\/ CSV\u3092\u914d\u5217\u5909\u6570\u3084\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\nvar os   = require('os');\n                            \/\/    os.networkInterfaces();\nvar sleep = require('sleep');\n                            \/\/ \u30a6\u30a7\u30a4\u30c8\u51e6\u7406\u7528\u30e2\u30b8\u30e5\u30fc\u30eb\n\/\/ ejs\u30d5\u30a1\u30a4\u30eb\u306e\u8aad\u307f\u8fbc\u307f\nvar template            = fs.readFileSync(__dirname + '\/ejs\/template.ejs', 'utf-8');\nvar top                 = fs.readFileSync(__dirname + '\/ejs\/top.ejs', 'utf-8');\nvar editBasic           = fs.readFileSync(__dirname + '\/ejs\/editBasic.ejs', 'utf-8');\nvar editChat            = fs.readFileSync(__dirname + '\/ejs\/editChat.ejs', 'utf-8');\nvar editTime            = fs.readFileSync(__dirname + '\/ejs\/editTime.ejs', 'utf-8');\nvar editServo           = fs.readFileSync(__dirname + '\/ejs\/editServo.ejs', 'utf-8');\nvar setBasic            = fs.readFileSync(__dirname + '\/ejs\/setBasic.ejs', 'utf-8');\nvar setTime             = fs.readFileSync(__dirname + '\/ejs\/setTime.ejs', 'utf-8');\nvar setServo            = fs.readFileSync(__dirname + '\/ejs\/setServo.ejs', 'utf-8');\nvar editIntent          = fs.readFileSync(__dirname + '\/ejs\/editIntent.ejs', 'utf-8');\nvar selectIntent4entity = fs.readFileSync(__dirname + '\/ejs\/selectIntent4entity.ejs', 'utf-8');\nvar editEntity          = fs.readFileSync(__dirname + '\/ejs\/editEntity.ejs', 'utf-8');\nvar selectIntent4dialog = fs.readFileSync(__dirname + '\/ejs\/selectIntent4dialog.ejs', 'utf-8');\nvar editDialog          = fs.readFileSync(__dirname + '\/ejs\/editDialog.ejs', 'utf-8');\nvar starting_pythonApp  = fs.readFileSync(__dirname + '\/ejs\/starting_pythonApp.ejs', 'utf-8');\nvar reboot              = fs.readFileSync(__dirname + '\/ejs\/reboot.ejs', 'utf-8');\nvar chatMode            = fs.readFileSync(__dirname + '\/ejs\/chatMode.ejs', 'utf-8');\nvar faceMode            = fs.readFileSync(__dirname + '\/ejs\/faceMode.ejs', 'utf-8');\nvar disableServer       = fs.readFileSync(__dirname + '\/ejs\/disableServer.ejs', 'utf-8');\nvar test                = fs.readFileSync(__dirname + '\/ejs\/test.ejs', 'utf-8');\n\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar routes = { \/\/ \u30d1\u30b9\u3054\u3068\u306e\u8868\u793a\u5185\u5bb9\u3092\u9023\u60f3\u914d\u5217\u306b\u683c\u7d0d\n    \"\/\":{\n        \"title\":\"BEZELIE\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u8a2d\u5b9a\u30c7\u30fc\u30bf\u306e\u7de8\u96c6\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":top}, \/\/ \u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\n    \"\/editBasic\":{\n        \"title\":\"\u57fa\u672c\u8a2d\u5b9a\",\n        \"message\":\"\u3079\u30bc\u30ea\u30fc\u306e\u57fa\u672c\u7684\u306a\u8a2d\u5b9a\u3092\u884c\u3044\u307e\u3059\",\n        \"content\":editBasic},\n    \"\/editChat\":{\n        \"title\":\"\u5bfe\u8a71\u8a2d\u5b9a\",\n        \"message\":\"\uff13\u7a2e\u985e\u306e\u30c7\u30fc\u30bf\u3092\u7de8\u96c6\u3059\u308b\u3053\u3068\u3067\u3001\u5bfe\u8a71\u3092\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\",\n        \"content\":editChat},\n    \"\/editTime\":{\n        \"title\":\"\u6642\u9593\u8a2d\u5b9a\",\n        \"message\":\"\u30a2\u30e9\u30fc\u30e0\u3068\u6d3b\u52d5\u6642\u9593\u306e\u8a2d\u5b9a\u3092\u3057\u307e\u3059\",\n        \"content\":editTime},\n    \"\/editServo\":{\n        \"title\":\"\u30b5\u30fc\u30dc\u8abf\u6574\",\n        \"message\":\"\u30b5\u30fc\u30dc\u306e\u521d\u671f\u4f4d\u7f6e\uff08\u89d2\u5ea6\uff09\u3092\u8abf\u6574\u3057\u307e\u3059\u3002\u5358\u4f4d\u306f\u5ea6\u3067\u3059\u3002\u30b5\u30fc\u30dc\u3092\u4e0a\u304b\u3089\u898b\u3066\u6642\u8a08\u56de\u308a\u304c\u6b63\u306e\u5024\u306b\u306a\u308a\u307e\u3059\",\n        \"content\":editServo},\n    \"\/chatMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/faceMode\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/disableServer\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u306b\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":disableServer},\n    \"\/editIntent\":{\n        \"title\":\"\u3010\u8cea\u554f\u5185\u5bb9\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u5185\u5bb9\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u805e\u304d\u305f\u3044\u5185\u5bb9\u306e\u3053\u3068\u3067\u3059\u3002\u3053\u306e\u6587\u5b57\u304c\u97f3\u58f0\u8a8d\u8b58\u3055\u308c\u308b\u308f\u3051\u3067\u306f\u306a\u3044\u306e\u3067\u3001\u308f\u304b\u308a\u3084\u3059\u3044\u540d\u79f0\u3092\u3064\u3051\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editIntent},\n    \"\/selectIntent4entity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u671b\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":selectIntent4entity},\n    \"\/editEntity\":{\n        \"title\":\"\u3010\u8a00\u3044\u56de\u3057\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8cea\u554f\u306e\u8272\u3005\u306a\u8a00\u3044\u56de\u3057\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8cea\u554f\u306e\u8a00\u3044\u56de\u3057\u3068\u306f\u3079\u30bc\u30ea\u30fc\u306b\u8cea\u554f\u3059\u308b\u969b\u306e\u3001\u3055\u307e\u3056\u307e\u306a\u8a00\u3044\u304b\u305f\u306e\u3053\u3068\u3067\u3059\u3002\u3072\u3089\u304c\u306a\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\",\n        \"content\":editEntity},\n    \"\/selectIntent4dialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u30ea\u30b9\u30c8\u304b\u3089\u8cea\u554f\u5185\u5bb9\u3092\u9078\u3093\u3067\u304f\u3060\u3055\u3044\u3002\u30ea\u30b9\u30c8\u306e\u4e2d\u306b\u597d\u307f\u306e\u8cea\u554f\u5185\u5bb9\u304c\u7121\u3044\u5834\u5408\u306f\u3001\u3044\u3063\u305f\u3093\u5bfe\u8a71\u7de8\u96c6\u753b\u9762\u306b\u623b\u308a\u3001\u8cea\u554f\u5185\u5bb9\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0\u3092\u3057\u3066\u304f\u3060\u3055\u3044\u3002\",\n        \"content\":selectIntent4dialog},\n    \"\/editDialog\":{\n        \"title\":\"\u3010\u8fd4\u7b54\u5019\u88dc\u3011\u306e\u7de8\u96c6\",\n        \"message\":\"\u8fd4\u7b54\u5019\u88dc\u306e\u8ffd\u52a0\u3084\u524a\u9664\u304c\u3067\u304d\u307e\u3059\u3002\u8fd4\u7b54\u5019\u88dc\u3068\u306f\u30e6\u30fc\u30b6\u30fc\u304b\u3089\u306e\u8cea\u554f\u306b\u5bfe\u3059\u308b\u3079\u30bc\u30ea\u30fc\u304b\u3089\u306e\u8fd4\u7b54\u306e\u5019\u88dc\u3067\u3059\u3002\u8907\u6570\u306e\u8fd4\u7b54\u3092\u8a2d\u5b9a\u3057\u305f\u5834\u5408\u306f\u30e9\u30f3\u30c0\u30e0\u3067\u9078\u3070\u308c\u307e\u3059\u3002\",\n        \"content\":editDialog},\n    \"\/reboot\":{\n        \"title\":\"\u518d\u8d77\u52d5\",\n        \"message\":\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":reboot},\n    \"\/starting_pythonApp\":{\n        \"title\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\",\n        \"message\":\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\",\n        \"content\":starting_pythonApp},\n    \"\/setBasic\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setBasic},\n    \"\/setTime\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setTime},\n    \"\/setServo\":{\n        \"title\":\"\u8a2d\u5b9a\u5b8c\u4e86\",\n        \"message\":\"\u8a2d\u5b9a\u3092\u66f4\u65b0\u3057\u307e\u3057\u305f\",\n        \"content\":setServo},\n    \"\/test\":{\n        \"title\":\"\u30c6\u30b9\u30c8\",\n        \"message\":\"\u3053\u308c\u306f\u30c6\u30b9\u30c8\u7528\u306e\u30da\u30fc\u30b8\u3067\u3059\",\n        \"content\":test}\n};\n\/\/ \u5909\u6570\u5ba3\u8a00\nvar file_chatIntent            = \"\/home\/pi\/bezelie\/chatIntent.csv\";\nvar file_chatEntity            = \"\/home\/pi\/bezelie\/chatEntity.csv\";\nvar file_chatDialog            = \"\/home\/pi\/bezelie\/chatDialog.csv\";\nvar file_chatEntity_tsv        = \"\/home\/pi\/bezelie\/chatEntity.tsv\";\nvar file_chatEntity_dic        = \"\/home\/pi\/bezelie\/chatEntity.dic\";\nvar file_debug                 = \"\/home\/pi\/bezelie\/debug.txt\";\nvar file_data_chat             = \"\/home\/pi\/bezelie\/edgar\/data_chat.json\";\nvar file_restart_app           = \"\/home\/pi\/bezelie\/edgar\/restart_app.sh\";\nvar file_exec_talk             = \"\/home\/pi\/bezelie\/edgar\/exec_openJTalk.sh\";\nvar file_setting_chatMode      = \"\/home\/pi\/bezelie\/edgar\/setting_chatMode.sh\";\nvar file_setting_faceMode      = \"\/home\/pi\/bezelie\/edgar\/setting_faceMode.sh\";\nvar file_setting_disableServer = \"\/home\/pi\/bezelie\/edgar\/setting_disableServer.sh\";\nvar errorMsg = \"\"; \/\/ \u3053\u308c\u304c\u7a7a\u6b04\u306e\u3068\u304d\u306f\u30a8\u30e9\u30fc\u7121\u3057\nvar posts = \"\";    \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3067\u9001\u3089\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\nvar intent = \"\";   \/\/ \u4eca\u56de\u9078\u629e\u3055\u308c\u305fintent\uff08\u5358\u6570\uff09\n\n\/\/ \u95a2\u6570\u5b9a\u7fa9\nfunction getLocalAddress() {                    \/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u53d6\u5f97\n    var ifacesObj = {}\n    ifacesObj.ipv4 = [];\n    ifacesObj.ipv6 = [];\n    var interfaces = os.networkInterfaces();\n\n    for (var dev in interfaces) {\n        interfaces[dev].forEach(function(details){\n            if (!details.internal){\n                switch(details.family){\n                    case \"IPv4\":\n                        ifacesObj.ipv4.push({name:dev, address:details.address});\n                    break;\n                    case \"IPv6\":\n                        ifacesObj.ipv6.push({name:dev, address:details.address})\n                    break;\n                }\n            }\n        });\n    }\n    return ifacesObj;\n};\n\nfunction pageWrite (res){                      \/\/ \u30da\u30fc\u30b8\u63cf\u753b\n    content = ejs.render( template, {\n        title: routes[url_parts.pathname].title,\n        errorMsg: errorMsg,\n        content: ejs.render( routes[url_parts.pathname].content, {\n            message: routes[url_parts.pathname].message,  \/\/ pathname\u306b\u5fdc\u3058\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6307\u5b9a\n            posts: posts,  \/\/ \u30d6\u30e9\u30a6\u30b6\u304b\u3089POST\u3055\u308c\u3066\u304d\u305f\u30c7\u30fc\u30bf\n            intent: intent \/\/ \u4eca\u56de\u9078\u3070\u308c\u305f\u30a4\u30f3\u30c6\u30f3\u30c8\n        })\n    });\n    res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n    res.write(content);\n    res.end();\n}\n\nfunction delChk (query, posts, intent){       \/\/ \u524a\u9664\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u756a\u53f7\u304c\u3001\u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u3082\u306e\u304b\u3092\u8abf\u3079\u308b\n    errorMsg = \"\u756a\u53f7\u304c\u9055\u3044\u307e\u3059\";\n    for (var i=0;i &lt; posts.length; i++ ) {\n        if (posts[i][0]==intent &amp;&amp; i==query.delNum){\n            errorMsg = \"\";\n        }\n    }\n    return errorMsg;\n}\n\nfunction readPosts(file){                     \/\/\n    var text = fs.readFileSync(file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    \/\/var text = fs.readFileSync(__dirname + \"\/\" + file, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n    posts = new CSV(text, {header:false}).parse(); \/\/  TEXT\u3092CSV\u3092\u4ef2\u4ecb\u3057\u3066\u30ea\u30b9\u30c8\u5909\u6570\u306b\u5909\u63db\u3059\u308b\n    return posts;\n}\n\nfunction obj2csv(posts){                     \/\/\n    text = '';\n    for (var i=0;i &lt; posts.length; i++ ) {\n        text = text+posts[i]+'\\n';\n        }\n    return text;\n}\n\nfunction debug(text){                        \/\/\n    \/\/fs.appendFileSync(file_debug, text, 'utf8'); \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n}\n\n\/\/-------------------------------------------------------------------------------------------------------\n\/\/ \u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\nfunction routing(req, res){ \/\/ request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u3089\u5b9f\u884c\u3055\u308c\u308b\u95a2\u6570\n    url_parts = url.parse(req.url); \/\/ URL\u60c5\u5831\u3092\u30d1\u30fc\u30b9\u51e6\u7406\n    errorMsg = \"\";\n    \/\/ \u60f3\u5b9a\u3057\u3066\u3044\u306a\u3044\u30da\u30fc\u30b8\u306b\u98db\u307c\u3046\u3068\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\n    if (routes[url_parts.pathname] == null){ \/\/ \u30d1\u30b9\u304c\u5909\u6570routes\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u30a8\u30e9\u30fc\u3092\u8868\u793a\u3059\u308b\n        content = \"&lt;h1&gt;NOT FOUND PAGE:\" + req.url + \"&lt;\/h1&gt;\"\n        res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'}); \/\/ \u30b9\u30c6\u30a4\u30bf\u30b9\u30b3\u30fc\u30c9\u3084http\u30d8\u30c3\u30c0\u30fc\u3092\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306b\u9001\u4fe1\u3059\u308b\u3002\n        res.write(content);\n        res.end();\n        return;\n    }\n    \/\/ GET\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406  -------------------------------------------------------------------------------\n    if (req.method === \"GET\"){\n        if (url_parts.pathname === \"\/editIntent\" || url_parts.pathname === \"\/selectIntent4entity\" || url_parts.pathname === \"\/selectIntent4dialog\"){\n            posts = readPosts(file_chatIntent);\n            pageWrite(res);\n            return;\n        } else if (url_parts.pathname === \"\/editBasic\" || url_parts.pathname === \"\/editTime\" || url_parts.pathname === \"\/editServo\"){ \/\/\n            var json = fs.readFileSync(file_data_chat, \"utf-8\");  \/\/ \u540c\u671f\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u8aad\u3080\n            obj_config = JSON.parse(json); \/\/ JSON\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5909\u63db\u3059\u308b\u3002ejs\u304b\u3089\u3082\u8aad\u3081\u308b\u3088\u3046\u306b\u30b0\u30ed\u30fc\u30d0\u30eb\u3067\u5b9a\u7fa9\u3059\u308b\n            pageWrite(res)\n        } else if (url_parts.pathname == \"\/starting_pythonApp\"){ \/\/ Julius\u3068python\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u518d\u8d77\u52d5\n            pageWrite(res);\n            debug('restart function start \\n');\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"bash \"+file_restart_app;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n            debug('restart function end \\n');\n        } else if (url_parts.pathname == \"\/reboot\"){ \/\/ \u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30b7\u30b9\u30c6\u30e0\u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = 'sudo reboot';\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/chatMode\"){ \/\/ \u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u97f3\u58f0\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_chatMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/faceMode\"){ \/\/ \u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u9854\u8a8d\u8b58\u30e2\u30fc\u30c9\u3067\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_faceMode;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else if (url_parts.pathname === \"\/disableServer\"){ \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\n            pageWrite(res);\n            var COMMAND = \"sh \"+file_exec_talk+\" \"+\"\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u505c\u6b62\u3057\u3001\u30a2\u30af\u30bb\u30b9\u30dd\u30a4\u30f3\u30c8\u5316\u3092\u7121\u52b9\u5316\u3057\u3066\u518d\u8d77\u52d5\u3057\u307e\u3059\";\n            exec(COMMAND, function(error, stdout, stderr) {\n              var COMMAND = \"sh \"+file_setting_disableServer;\n              exec(COMMAND, function(error, stdout, stderr) {\n              }); \/\/ end of exec\n            }); \/\/ end of exec\n        } else {\n            pageWrite(res);\n        }\/\/ end of if\n    } \/\/ end of get request\n    \/\/ POST\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406 -------------------------------------------------------------------------------\n    if (req.method === 'POST') {\n        req.data = \"\";\n        req.on(\"data\", function(data) {\n            req.data += data;\n        });\n        req.on(\"end\", function() {\n            var query = qs.parse(req.data); \/\/ \u5168\u53d7\u4fe1\u30c7\u30fc\u30bf\u3092querry string\u3067\u30d1\u30fc\u30b9\u3059\u308b\u3002\n        \/\/ ----------------------------------------------------------------------------------------------\n            if (url_parts.pathname == \"\/editIntent\"){ \/\/ \u30a4\u30f3\u30c6\u30f3\u30c8\u306e\u7de8\u96c6\n                posts = readPosts(file_chatIntent);\n                if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){\n                        posts.push(['common',query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    } else if(query.delNum &gt;= posts.length) {\n                        errorMsg = \"\u6570\u5b57\u304c\u5927\u304d\u3059\u304e\u307e\u3059\";\n                    } else {\n                        intent = posts[query.delNum][1];\n                        posts = readPosts(file_chatEntity);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatDialog);\n                        for (var i=0;i &lt; posts.length; i++ ) {\n                            if (posts[i][0] == intent){\n                                errorMsg = \"\u3053\u306e\u8cea\u554f\u5185\u5bb9\u306b\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u8fd4\u7b54\u5019\u88dc\u30c7\u30fc\u30bf\u304c\u5b58\u5728\u3057\u307e\u3059\u3002\u5148\u306b\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002\";\n                            }\n                        }\n                        posts = readPosts(file_chatIntent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u305f\u3081\u3002\n                }\n                if (errorMsg == \"\"){\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatIntent, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editEntity\"){ \/\/ \u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u306e\u7de8\u96c6\n                posts = readPosts(file_chatEntity);\n                if (query.intent){ \/\/ selectIntent\u304b\u3089\u6765\u305f\u5834\u5408\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\n                    for (i=0;i&lt;query.newItem.length;i++){ \/\/ \u3072\u3089\u304c\u306a\u304b\u30c1\u30a7\u30c3\u30af\n                        var unicode = query.newItem.charCodeAt(i);\n                        if ( unicode&lt;0x3040 || unicode&gt;0x309f ){\n                            if ( unicode != 0x30fc ){ \/\/ chou-on\n                                errorMsg = \"\u8a00\u3044\u56de\u3057\u30c7\u30fc\u30bf\u306f\u3072\u3089\u304c\u306a(\u5168\u89d2)\u3067\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                            }\n                        }\n                    }\n                    for (var i=0;i &lt; posts.length; i++ ) { \/\/ \u91cd\u8907\u30c1\u30a7\u30c3\u30af\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u8ffd\u52a0\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5024\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{ \/\/ \u9078\u629e\u4e2d\u306e\u30a4\u30f3\u30c6\u30f3\u30c8\u306b\u3072\u3082\u3065\u304f\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3\u304b\u3069\u3046\u304b\u30c1\u30a7\u30c3\u30af\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u30a2\u30a4\u30c6\u30e0\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/ \u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                   text = obj2csv(posts);\n                   fs.writeFile(file_chatEntity, text , 'utf8', function (err) {\n                      var COMMAND = 'sudo sed -E \"s\/,\/    \/g\" '+file_chatEntity+' &gt; '+file_chatEntity_tsv; \/\/ csv\u3092tsv\u306b\u5909\u63db\n                      exec(COMMAND, function(error, stdout, stderr) { \/\/ tsv\u30d5\u30a1\u30a4\u30eb\u3092julius\u306edic\u5f62\u5f0f\u306b\u5909\u63db\n                           var COMMAND = 'iconv -f utf8 -t eucjp '+file_chatEntity_tsv+' | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; '+file_chatEntity_dic; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           \/\/ var COMMAND = 'iconv -f utf8 -t eucjp chatEntity.tsv | \/home\/pi\/dictation-kit-v4.4\/src\/julius-4.4.2\/gramtools\/yomi2voca\/yomi2voca.pl &gt; chatEntity.dic'; \/\/ tsv\u3092dic\u306b\u5909\u63db\n                           exec(COMMAND, function(error, stdout, stderr) {\n                           });\n                       }); \/\/end of exec\n                   }); \/\/ end of fs\n                } \/\/ end of if\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/editDialog\"){ \/\/ \u30c0\u30a4\u30a2\u30ed\u30b0\u306e\u7de8\u96c6\n                posts = readPosts(file_chatDialog);\n                if (query.intent){ \/\/ intent\u3092\u9078\u629e\u3057\u305f\u5834\u5408\u306e\u51e6\u7406\u3002\n                    intent = query.intent; \/\/ \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570intent\u306b\u4ee3\u5165\u3002\n                    errorMsg = \" \";\n                } else if (query.newItem){ \/\/ \u65b0\u898f\u8ffd\u52a0\u306e\u5834\u5408\u3002\u91cd\u8907\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u3002\n                    for (var i=0;i &lt; posts.length; i++ ) {\n                        if (posts [i][0] == intent &amp;&amp; posts[i][1] == query.newItem){\n                            errorMsg = \"\u3059\u3067\u306b\u767b\u9332\u3055\u308c\u3066\u3044\u307e\u3059\";\n                        }\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u91cd\u8907\u304c\u306a\u304b\u3063\u305f\u5834\u5408\u3002\u8ffd\u52a0\u3059\u308b\u3002\n                        posts.push([intent,query.newItem]); \/\/ newItem\u3092post\u306e\u914d\u5217\u306b\u5165\u308c\u308b\u3002\n                    }\n                } else if (query.delNum){ \/\/ \u524a\u9664\n                    if(isNaN(query.delNum)){ \/\/ \u6570\u5b57\u3058\u3083\u306a\u3044\u5834\u5408\n                        errorMsg = \"\u6570\u5b57(\u534a\u89d2)\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\";\n                    }else{\n                        errorMsg = delChk(query, posts, intent);\n                    }\n                    if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u306e\u3067\u524a\u9664\n                        posts.splice(query.delNum, 1); \/\/ posts\u304b\u3089delNum\u884c\u3092\u524a\u9664\n                    }\n                } else { \/\/\u5fc5\u8981\u306a\u3044\u304c\u5ff5\u306e\u70ba\n                }\n                if (errorMsg == \"\"){ \/\/ \u30a8\u30e9\u30fc\u304c\u306a\u304b\u3063\u305f\u3089\u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u304d\u8fbc\u307f\n                    text = obj2csv(posts);\n                    fs.writeFileSync(file_chatDialog, text , 'utf8', function (err) { \/\/ \u30d5\u30a1\u30a4\u30eb\u306b\u66f8\u8fbc\n                    });\n                }\n                pageWrite(res);\n\n            } else if (url_parts.pathname == \"\/setBasic\"){ \/\/ \u57fa\u672c\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data0[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n            } else if (url_parts.pathname == \"\/setTime\"){ \/\/ \u6642\u9593\u8a2d\u5b9a\u306e\u4fdd\u5b58\n                obj_config.data1[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                yearNow=obj_config.data1[0].nowYear;\n                timeNow=obj_config.data1[0].nowTime;\n                console.log(yearNow);\n                console.log(timeNow);\n                var COMMAND = \"sudo date -s '\"+yearNow+\" \"+timeNow+\"'\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else if (url_parts.pathname == \"\/setServo\"){ \/\/ \u30b5\u30fc\u30dc\u8abf\u6574\u306e\u4fdd\u5b58\n                obj_config.data2[0] = qs.parse(req.data);\n                fs.writeFile(file_data_chat, JSON.stringify(obj_config), function (err) {\n                });\n                pageWrite(res);\n                var COMMAND = \"python bezelie.py\";\n                exec(COMMAND, function(error, stdout, stderr) {\n                });\n            } else { \/\/ \u8a72\u5f53\u305b\u305a\n                res.writeHead(200, {'Content-Type': 'text\/html; charset=UTF-8'});\n                res.write(\"NO-POST!!\");\n                res.end();\n                return;\n            } \/\/ end of if\n        }); \/\/ end of req on\n    } \/\/ end of POST request\n} \/\/ end of doRequest\n\n\/\/ ---------------------------------------------------------------------------------------------------------\n\/\/ IP\u30a2\u30c9\u30ec\u30b9\u306e\u8a2d\u5b9a\nvar host = getLocalAddress().ipv4[0].address; \/\/ \u73fe\u5728\u306eIP\u30a2\u30c9\u30ec\u30b9\u3092\u53d6\u5f97\u3059\u308b\u3002\ndebug('server_chat.js start \\n');\ndebug(host+'\\n');\n\n\/\/ \u30b5\u30fc\u30d0\u30fc\u306e\u8d77\u52d5\nconsole.log (\"starting node server\");\nvar server = http.createServer(); \/\/ http.server\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4f5c\u308b\u3002\u623b\u5024\u306fhttp.server\u578b\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3002\nserver.on('request', routing);    \/\/ server\u3067request\u30a4\u30d9\u30f3\u30c8\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u306e\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u95a2\u6570\u3092\u767b\u9332\nvar port = 3000;                  \/\/ port\u306f1024\u4ee5\u4e0a\u306e\u6570\u5b57\u306a\u3089\u4f55\u3067\u3082\u3088\u3044\u3002\nserver.listen(port, host)         \/\/ \u30b5\u30fc\u30d0\u30fc\u3092\u5f85\u3061\u53d7\u3051\u72b6\u614b\u306b\u3059\u308b\u3002\nconsole.log (\"server is listening at \"+host+\":\"+port);\n<\/pre>\n<p style=\"padding-left: 30px;\">\u30fbport\u756a\u53f7\u306f\u3053\u3053\u3067\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059\u306e\u3067\u3001\u5909\u66f4\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30fbserver_chat.js\u306f\u30e9\u30ba\u30d1\u30a4\u306e\u4e2d\u3067web\u30b5\u30fc\u30d0\u30fc\u3068\u3057\u3066\u52d5\u304fNode.js\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u3059\u3002\uff08Node.js\u3068\u306f\uff1f\uff09 \u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u8aad\u307f\u8fbc\u307f \/\/ \u3079\u30bc\u30ea\u30fc\u8a2d\u5b9aWeb\u30a2\u30d7\u30ea \/\/ for Bezelie Edgar &hellip; <a href=\"http:\/\/bezelie.com\/blog\/?page_id=1899\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;\u30d7\u30ed\u30b0\u30e9\u30e0\u89e3\u8aac\u300cserver_chat.js\u300d&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1899","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=\/wp\/v2\/pages\/1899","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1899"}],"version-history":[{"count":8,"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=\/wp\/v2\/pages\/1899\/revisions"}],"predecessor-version":[{"id":2371,"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=\/wp\/v2\/pages\/1899\/revisions\/2371"}],"wp:attachment":[{"href":"http:\/\/bezelie.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}