前回の【node.js】socket.ioを使って簡単にチャットを作る方法の続きです。今回はチャットした内容をデータベースに保存する方法です。こうすることによって、一回ブラウザを閉じて再度開いた時に閉じる前のメッセージが残っていたり、途中から参加した人も今までのメッセージが読めるようになります。いくら保存できるようになったとしても、製品レベルには程遠く、脆弱性対策もしていないので、今回は、node.jsでMongoDBを使うことと、MongoDB のオブジェクトモデリングツールであるMongoose(マングース)の使い方のポイントだけを抑えて頂ければと思います。 今回のポイント Mongooseをインストールして簡単な使い方。 チャットのメッセージを保存する。 ブラウザを閉じてもメッセージが残っている。 メッセージを削除する。 削除したメッセージは、相手にも削除されるようにする。 ※予めMongoDBが使える状態にしててください。 必要なnode_modules ejs express mongoose socket.io Mongooseのインストール インストールはいつものnpmでめっちゃ簡単にインストールできます。 $ npm install mongoose app.jsを編集 前回の【node.js】socket.ioを使って簡単にチャットを作る方法のソースからMongooseの追記だけをしたサンプルです。 app.js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

続きを読む

※この記事の続きもよくご覧いただいてます。※ 【Node.js】Socket.IO+MongoDBを使って保存できるチャットを作る方法 なんとかチャットを作ることができるようになりました。まだ仕組みの表面しか理解できてないかもしれませんが、入り口には立てたと思います。ただソースを落としてきて、「あー動いた。」でもいいんですが、僕は分からなくてもソースを書いていけば、そのうち理解できるかもという非効率な勉強法が好きなので、^-^; 同じ方がいらっしゃればお役に立てる内容になればと思います。 ソースコード https://github.com/cotapon/chat-socket_io-sample 環境 MacOS 10.6.8 ターミナル.app node v0.6.11 or v0.8.4 ※ npm v1.1.45 express v2.5.11 socket.io v0.8.7 ※node.jsのバージョンによっては、socket.ioが繋がらないなどの現象があります。今回はv0.6.11と、2012年7月31日現在の安定版、v0.8.4でも検証して成功しました。 node.jsのバージョンを確認 まず、node.jsのバージョンを確認しましょう。 $ node -v v0.6.11 もし、v0.6.x以下でしたら、うまくexpressとsocket.ioが繋がらない可能性がありますので、node.jsのバージョンを上げます。 参考にnvmという、node.jsのバージョン管理ツールで変更する方法をメモします。 nvmがインストールされていないかたは、こちらの記事を御覧ください。 //node.js v0.8.4をインストール $ nvm install v0.8.4 //インストールしたバージョンを使います。 $ nvm ues v0.8.4 Now using node v0.8.4 //ターミナルを閉じても使えるようにしておく $ nvm alias default v0.8.4 default -> v0.8.4 npmをインストールする。 ※既にnpmが入ってる方は、ここの項目は飛ばして下さい。 //npmをインストール $ curl http://npmjs.

続きを読む

[INFO] Restarting [ERROR] Error Error: Cannot find module 'socket.io' node.jsを実行した時に、socket.ioがうまく繋がらなかった時のエラー。いろいろ試してsocket.ioが繋がった時のメモを残します。 検証環境 MacOS 10.6.8 ターミナル.app node v0.6.18 npm v1.1.24 express v2.5.10 socket.io v0.8.7 現時点でsocket.ioの最新バージョンはv0.9.xでしたが、0.8.7にすればとりあえず動きました。 $ npm install socket.io@0.8.7 app.js編集 app.js 1 2 var app = module.exports = express.createServer(); var io = require('socket.io').listen(app);//この行を追加 node app.jsで起動してみる $ node app.js info - socket.

続きを読む

プロフィール画像

こたぽん

JavaScript, React, NextJS, VueJS, NuxtJS, AWS, Firebase, Git, ビールと生ハムが好き

Rakuten, Inc. CyberAgent, Inc.