Mongooseでフィールドのデフォルト値を現在時刻にする

公式ドキュメントのdefaultsのページに書いてあった。

以下のように書けばドキュメント作成時のデフォルト値を現在時刻に指定できる。

new Schema({
	date: { type: Date, default: Date.now }
})

次のように書いていて、データベースに追加するたびに同じ時刻が書き込まれるので不思議に思っていた。

new Schema({
	date: { type: Date, default: Date.now() }
})
// あるいは
new Schema({
	date: { type: Date, default: (new Date()).getTime() }
})

上記のように書いてしまうと、スキーマを作成した時刻が毎回書き込まれてしまう。defaultには、値も渡せるし、関数も渡せるということをよく理解していなかったためにミスした。

node.jsでMongoDBの接続に失敗する時

node.js, Express, MongoDBという組み合わせを、Ubuntu12.04のVM上で動かしていたら、Webアプリケーションを起動(npm start)した時に以下のようなエラーが出るようになってしまった。

[Error: failed to connect to [localhost:27017]]

以下2つの記事を参考にして解決。

続きを読む node.jsでMongoDBの接続に失敗する時

Debian6.0.2にnvmでnode.jsを入れるメモ

既に実験用として運用されてるDebian6.0.2サーバーにnode.jsのインストールを試みたのでメモ。
Node.jsとnvmを初めてインストールするときのハマりポイントと対策 – ess supを参考にした。

サーバーサイドはほとんど不慣れなので、明らかにおかしい表現があったらこっそり教えていただけると嬉しいです。

続きを読む Debian6.0.2にnvmでnode.jsを入れるメモ