背景情報node.js/express application - データベース接続ロジックはどこに置かれますか?
初めての急なアプリケーションを作成しました。私はそれがファイルとデフォルトのフォルダ構造の束を作成したことがわかります。
[email protected]:/var/www/html/nodejs_samples/tutorial1$ ls -lah
total 36K
drwxr-xr-x 7 me me 4.0K Sep 28 09:26 .
drwxrwxr-x 5 me me 4.0K Sep 28 08:45 ..
-rw-rw-r-- 1 me me 1.5K Sep 28 08:45 app.js
drwxr-xr-x 2 me me 4.0K Sep 28 09:20 bin
drwxrwxr-x 96 me me 4.0K Sep 28 09:26 node_modules
-rw-rw-r-- 1 me me 352 Sep 28 09:26 package.json
drwxr-xr-x 5 me me 4.0K Sep 28 08:45 public
drwxr-xr-x 2 me me 4.0K Sep 28 09:26 routes
drwxr-xr-x 2 me me 4.0K Sep 28 08:45 views
[email protected]:/var/www/html/nodejs_samples/tutorial1$
ゴール
私は「ウィジェット」と呼ばれる新しいルートを作成したいとGETメソッドが呼び出されたときに、私はRedisのデータベースを呼び出す必要があります:これは私のアプリの構造は、現在のように見えるものですクエリを実行します。
http://myserver/tutorial1/widgets/
または
http://myserver/tutorial1/widgets/12345
12345は私が照会したいウィジェットのキーです:私はこの取得をトリガーするために使用したい URLは次のようなものです。私はこれまで
をやった
私はRedisのデータベースを照会/接続する方法を説明し、このドキュメントを見つけました:http://expressjs.com/en/guide/database-integration.html#redis
私も発現していることルート/ users.jsをコピーしましたジェネレータは、私が経路/ widgets.jsを出発点として「無料で」作成しました。私は、データベース接続のロジックとクエリロジックを追加する必要がどこそれは私にははっきりしていない
[email protected]:/var/www/html/nodejs_samples/tutorial1$ cat routes/widgets.js
var express = require('express');
var router = express.Router();
/* GET widgets listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
module.exports = router;
質問
:
これは、ように見えるファイルwidgets.js何私のルート/です。私はすべてのデータベースロジックをモデルに分割するMVCに慣れています。
すべてをroute/widgets.jsファイルに入れることはできますか?
場合によっては、私のapp.jsファイルの外観は次のとおりです:http://pastebin.com/hAe5mvwt。私は2行10行目と28行目を追加しました。
良いチュートリアルへの提案やリンクがあれば幸いです。
あなたは*可能ですが、ルートハンドラに直接結合されています。そのように始めるのはいいですが、私は懸念をより強く分けることを好みます。最終的には、これは意見に変わります。機能を分断するための具体的な「正しい」方法はありません。 –