勉強がてらTypeScriptで運営してるサービスを作りなおしているんですが、mongooseのところでちょっとハマったのでメモします。
monooseをインストールして、型定義ファイルもインストールします。
command 1
$ npm i -S mongoose $ typings install -SG dt~mongoose TypeScriptファイルにmongooseをimportします。
command 1
import * as mongoose from 'mongoose'; これでコンパイルすると、
command 1
Error TS2307: Cannot find module 'mongodb'. mongodbがないよ。と怒られるのでインストールします。
command 1
前回の【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
Tower.jsはnode.jsで使えるモジュールがいっぱい入ってるパッケージです。例えば、node.jsのsocket.ioモジュールでチャットを作ります。CoffeeScriptが使いたいのでモジュールをインストールします。あとそれからそれから、、、というのがだいたい入ってます。
Tower.js
http://towerjs.org/
Tower.js models
http://towerjs.org/models
僕はこんなに使いこなせるかわかりませんが、とりあえず入れてみて動かしてみたいと思います。参考にさせていただいたのは下記のサイト。
さらばExpressよ!Tower.jsを試すの巻
http://codedehitokoto.blogspot.jp/2012/03/expresstowerjs.html[](http://codedehitokoto.blogspot.jp/2012/03/expresstowerjs.html)
Tower.jsはnpmにはいっているのでインストールは簡単です。
Tower.jsインストール手順 // 1.-gオプションを付けてnpmからTower.jsをインストール $ npm install -g tower // 2.$ tower new [フォルダー名] $ tower new sample // 3.sampleフォルダーに移動 $ cd sample // 4.インストールします。 $ npm install // 5.ターミナルを別タブで開いてMongoDBを起動 $ mongod // 6.ターミナルのタブを最初に戻して起動します。 $ node server.js さて、これで動くはずみたいですが、僕のはこんなアラートが出ました。
[Sun, 01 Jul 2012 11:20:01 GMT] INFO Tower development server listening on port 3000 [ERROR] Error Error: failed to connect to [127.