今週の研究は主にnodejsデータベースインタラクションに関するもので、jadeテンプレートを使用してユーザー認証Webサイトを構築しました。主な理由は、いくつかの問題に遭遇したためです。
1.mongodb のバージョンが低すぎます
npm ERR! オペレーティング システムまたはアーキテクチャと互換性がありません: mongodb@0.9.9
0.9.9 は Linux、darwin、freebsd システムのみをサポートし、最新バージョンは win をサポートします。
2.nodejs が挿入操作を実行した後: 結果を読み取ることができません
見た目はリダイレクトが失敗したように見えますが、実際の状況はデータベースへの挿入は成功しましたが、doc[0].email の値は言うまでもなく空です。その理由は、挿入などの操作は非同期で実行され、非同期操作はデフォルトでは操作が成功したかどうかを判断するための結果を返さないためです。この関数は、3 番目のパラメーター {safe:ture}、つまり app.users.insert(req.body.user, {safe:ture}, function(){……}) を追加することで実現する必要があります。このようにして、結果は正常に読み取られます。
3. connect-connect に未定義のストアが表示されます
ソースコードは上記の通りです。その理由は Express のバージョンが異なるためであり、connect-mongo モジュールが異なる方法で導入されていることがわかります。 Readme.md には特別な注意事項もあります。
バージョンが異なる場合は、それに応じて変更してください。
4. 概要
この本を読んだ後、nodejs とアクティブな外国語 Web サイトの機能をいくつか知りました。ノードの一部の人気セクションの更新頻度も、この本を入門書とみなすことができます。次はsailsのバックエンドフレームワークを実戦を通して学んでいく予定です。勉強中に遭遇した問題もノートに記録されます。