Node.js + Mongoose のアプリ開発で MONGOOSE WARNING という警告メッセージが表示されたら、 unstable バージョンを利用していると思われるので stable なバージョンを使いましょう。
まず、アプリを起動しようとすると !!! MONGOOSE WARNING !!! と派手に怒られます。
$ node-dev app.js
##############################################################
#
# !!! MONGOOSE WARNING !!!
#
# This is an UNSTABLE release of Mongoose.
# Unstable releases are available for preview/testing only.
# DO NOT run this in production.
#
##############################################################
Error: Cannot find module 'knox'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (/Users/username/works/myapp/routes/admin/content.js:5:12)
at Module._compile (module.js:456:26)
at Module._extensions..js (module.js:474:10)
at Object.nodeDevHook [as .js] (/Users/username/.nvm/v0.10.28/lib/node_modules/node-dev/lib/hook.js:43:7)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
[ERROR] 10:45:41 Error
package.json に “mongoose”: “^3.8.13”, と記述されていたので npm install したら Mongoose version 3.9.7 がインストールされておりました。
$ npm list | grep mongoose
├─┬ [email protected] invalid
├─┬ [email protected]
├─┬ [email protected]
│ └─┬ [email protected]
├── [email protected]
npm ERR! invalid: [email protected] /Users/username/myapp/node_modules/mongoose
npm ERR! not ok code 0
Mongoose の version を確認して使えそうな stable version に package.json を書き換えて、再度 npm install すれば OK なはず。
$ git diff
diff --git a/package.json b/package.json
index e56cf62..6b49881 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
- "mongoose": "^3.8.13",
+ "mongoose": "3.8.13",
package.json の書き方は下記のサイトが詳しいので、あわせて読んでおくといいかもです。