Node.js
Express

Expressのapp.useの記載順

node.jsのフレームワークExpressの勉強をしていた引っかかったのでメモに残します。

教材はこちらを利用。
Node.js 超入門

事象

app.jsの中でルーティングを以下のように設定。

app.js
var index = require('./routes/index');
var users = require('./routes/users');
var home = require('./routes/home');
//略
app.use('/',index);
app.use('/users',users);
app.use('/home',home);

ルーティング先のindex.jsではセッションにログイン情報がなければusersをリダイレクトします。
npm startしてlocalhostにアクセスすると
ブラウザのほうで

localhost でリダイレクトが繰り返し行われました。

となりusersを表示できない。

解決策

よくよく本に書いてあるソースコードを見ると

app.js
var index = require('./routes/index');
var users = require('./routes/users');
var home = require('./routes/home');
//略
app.use('/users',users);//indexとusersの記載順が逆になっている。
app.use('/',index);
app.use('/home',home);

indexusersapp.useの記載順が逆だったことに気づきました。これを修正すると'users'の表示ができました。

原因

app.useの記載順に読み込まれるからindex.js内でusersをリダイレクトすると先に書いてあるindexのほうを読み込んでひたすらindexを呼び出しているというふわっとした理解。
自分の中でも少しもやっとしていてちゃんと理解できていない気がする。
とりあえずはこの理解で進めるかな~