はじめに
今までRailsしかやってこなかったのでNode.jsを入門しようと思い, とりあえずexpress-generatorでWebアプリの雛形を作り, Socket.ioを使った簡単な非同期通信チャットアプリを作ろうと思いました.
しかし, npm startしてページを開けても
GET /socket.io/socket.io.js 404
と出てしまい上手くいきませんでした.
色々ググったら解決したので, 備忘録として記事を書きます.
間違ってる部分があればコメントでご指摘頂けると助かります.
環境
macOS Mojava 10.14.6
Node.js 12.13.1
npm 6.12.1
Express 4.17.1
Socket.io 2.3.0
何がダメだったか(私の場合)
このエラーの原因は色々と考えられますが, 私の場合はapp.jsに
vario=require('socket.io')(server);io.on('connection',function(socket){console.log('connected');});
を入れていたからっぽかったです.
socket関連の処理は, app.jsではなくbin/wwwファイルに書くとのことでした.
解決策
bin/wwwに処理を書きます.
varserver=http.createServer(app);
の後に,
//Socket.iovario=require('socket.io')(server);io.on('connection',function(socket){console.log('connected');});
を記述すると, 無事ターミナルで
connected
と出力されていました.