[解決済み] express.Routerとapp.getの違い?
質問
NodeJS と Express 4 を使い始めたのですが、少し混乱しています。Express の Web サイトを読みましたが、次のような記述が見当たりません。
いつ
を使用するのか、また、ルートハンドラを使用するのか。
express.Router
.
このように、もしユーザーが
/show
を使用する必要があります。
var express = require('express')
var app = express()
app.get("/show", someFunction)
当初、これは古い(Express 3用)ものだと思っていました。それともExpress 4でもこの方法なのでしょうか?
もし、Express4でこの方法なら、何が
express.Router
に使用されるのですか?
上記とほぼ同じ例を読みましたが、この例では
express.Router
:
var express = require('express');
var router = express.Router();
router.get("/show", someFunction)
では、両者の例の違いは何でしょうか?
簡単なテストサイトだけなら、どちらを使えばいいのでしょうか?
どのように解決するのですか?
app.js
var express = require('express'),
dogs = require('./routes/dogs'),
cats = require('./routes/cats'),
birds = require('./routes/birds');
var app = express();
app.use('/dogs', dogs);
app.use('/cats', cats);
app.use('/birds', birds);
app.listen(3000);
dogs.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.send('GET handler for /dogs route.');
});
router.post('/', function(req, res) {
res.send('POST handler for /dogs route.');
});
module.exports = router;
いつ
var app = express()
が呼び出されると、アプリオブジェクトが返されます。これは
メインアプリ
.
いつ
var router = express.Router()
が呼び出されると、少し変わった
ミニアプリ
が返されます。の背後にある考え方は
ミニアプリ
は、アプリ内の各ルートが非常に複雑になる可能性があり、そのコードをすべて別のファイルに移動させることが有益であることを示します。各ファイルのルーターは
ミニアプリ
と非常によく似た構造を持っています。
メインアプリ
.
上記の例では /dogs ルートは独立したファイルに移動されました。 メインアプリ . のコードは /猫 と /鳥 は、それぞれのファイルで同じような構造になっているはずです。このコードを3つの ミニアプリ 他の2つのロジックへの影響を気にすることなく、それぞれのロジックを単独で作業することができます。
3つのルートすべてに関わるコード(ミドルウェア)がある場合、それを
メインアプリ
の前、つまり
app.use(...)
を呼び出します。もし、これらのルートのうちの1つだけに関係するコード(ミドルウェア)がある場合は、そのルート専用のファイルに入れることができます。
関連
-
[解決済み】MongoClient v3.0使用時、db.collectionは関数ではない
-
[解決済み】モジュール 'internal/util/types' が見つかりません。
-
[解決済み】Express.js req.bodyが未定義です。
-
[解決済み】Nodejsの解決方法:Error: ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み] package.jsonのチルダ(~)とキャレット(^)の違いは何ですか?
-
[解決済み] npm package.jsonファイルのdependencies, devDependencies, peerDependenciesの違いは何ですか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] socket.ioとwebsocketの違いについて
-
[解決済み] ExpressJS アプリケーションをどのように構成するか?
-
[解決済み】express.jsのapp.useとapp.getの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Passport.js - エラー: ユーザーのセッションへのシリアライズに失敗しました。
-
[解決済み】Mongooseで、日付でソートするにはどうしたらいいですか?(node.js)
-
[解決済み】npm 5で作成されたpackage-lock.jsonファイルはコミットするのでしょうか?
-
[解決済み】npm 5で作成されたpackage-lock.jsonファイルはコミットするのでしょうか?
-
[解決済み] Node.jsで「btoaが定義されていない」エラーが発生する
-
[解決済み] のエラーが発生しました。これはおそらくnpmの問題ではありません。上に追加のログ出力があると思われます
-
[解決済み] バルク更新を行う。
-
[解決済み] node.js - リクエスト - "emitter.setMaxListeners() "はどのように?
-
[解決済み] NPMが同じエラーで固まる EISDIR: ディレクトリに対する不正な操作、エラーで読み込み (ネイティブ)
-
[解決済み] npm not able to find a fileに関連するエラーは何が原因でしょうか?node_modules サブフォルダ内にコンテンツがありません。なぜでしょうか?