今までローカルで動かしていたものをHerokuでjsファイルをデプロイしたいのですが、
サーバーに関する知識がなく、知恵をお借りしたいです。
まず、自分がデプロイしたいjsファイルのコードの一部を載せます。
javascript
1const http = require('http'), 2 ws = require('ws'), 3 fs = require('fs'), 4 path = require('path'), 5 filename = path.join(__dirname, 'RangeSpecification.html'); 6 7const wss = new ws.Server({ port: 8081 }); 8 9wss.on('connection', (client) => { 10 client.on('message', (message) => { 11 12 const envelope = JSON.parse(message); 13 14 console.log('received Polygon: %s', envelope.Polygon); 15 16 const NearBy = require('../GooglePlaceNearBy-master/index.js').NearBy 17 18 let option = { 19 'key': "***", 20 'boundary': JSON.parse(envelope.Polygon) , 21 'tag': "restaurant" 22 }; 23 const nearBy = new NearBy(option); 24 25 var item_res = [] 26 27 nearBy.execute((err, argv, map, stats) => { 28 29 var ffs = require('fs'); 30 31 //ファイルの書き込み関数 32 function writeFile(path, data) { 33 ffs.writeFile(path, data, function (err) { 34 if (err) { 35 throw err; 36 } 37 }); 38 } 39 40 writeFile("0926test_placeid_res.txt", Object.keys(stats.venues).join("\n")); 41 42 item_res.push(Object.keys(stats.venues)); 43 44 console.log(item_res) 45 console.log("restaurant place_id crawl !") 46 47 //一部省略 48 49 50 }); 51}); 52 53fs.readFile(filename, 'binary', (err, filecontent) => { 54 http.createServer((request, response) => { 55 if (err) { 56 response.writeHead(404, { 'Content-Type': 'text/plain' }); 57 response.write("404 Not Found\n"); 58 response.end(); 59 } else { 60 const header = { 61 'Access-Control-Allow-Origin': '*', 62 'Pragma': 'no-cache', 63 'Cache-Control': 'no-cache' 64 } 65 response.writeHead(200, header); 66 response.write(filecontent, 'binary'); 67 response.end(); 68 } 69 }).listen(8080); 70});
試したこととしてWeb上に転がっているサイトを見て、fs.readFile()...部分を以下のように変えたりしましたが、うまく行きませんでした。
javascript
1fs.readFile(filename, 'binary', (err, filecontent) => { 2 3 var http = require('http'); //httpモジュール呼び出し 4 var server = http.createServer(function (request, response) { 5 const header = { 6 'Access-Control-Allow-Origin': '*', 7 'Pragma': 'no-cache', 8 'Cache-Control': 'no-cache' 9 } 10 response.writeHead(404, { 'Content-Type': 'text/plain' }); 11 response.write(filecontent, 'binary'); 12 response.end(); // レスポンス送信を完了する 13 }); 14 server.listen(process.env.PORT || 8080); //8080番ポートで待ち受け 15 16});
ちなみにheroku openコマンドをした際以下のようなエラーが出ます。
このコマンドにあるheroku logs --tailも見てみましたがいまいちわかりませんでした。
もしかしたらHerokuの制約しらべている途中ですが、そもそもコードの書き方が間違っているかもしれないとも思い、質問させていただきました。
サーバーのに関する知識がなく、なにかご享受いただけたら幸いです。
よろしくお願いします。
あなたの回答
tips
プレビュー