回答編集履歴

1

誤りを修正

2019/05/26 02:10

投稿

mottox2
mottox2

スコア299

test CHANGED
@@ -1,6 +1,32 @@
1
- のコードですと、最初に`/`か/`root`に一致するか判定しており、`/root/hoge`にアクセスすると`/root`一致していると判定されています。
1
+ もう一回手元で動かしましたが、質問のコードでconsole.log埋め込んでみたところapp.useで/roothを設定するからのルーターになっています。
2
2
 
3
+ これは`hoge`が実行されていないためです。
4
+
3
- もしかしたら`h`にたRouterが有効になると思われているかもしれませんがhoge()内容実行されておらずrouter義時のままなので、`/root`として判定された際は空のルーターが有効になってるよに見えます
5
+ app.useで設定しているrouter、登録時もの設定されるため、先にRouterを設定しておくといでしょう。
6
+
7
+
8
+
9
+ ```js
10
+
11
+ let h = express.Router();
12
+
13
+ app.use('/', (req, res, next) => {
14
+
15
+ h = hoge()
16
+
17
+ next()
18
+
19
+ });
20
+
21
+
22
+
23
+ console.log(h)
24
+
25
+
26
+
27
+ app.use('/root', h)
28
+
29
+ ```
4
30
 
5
31
 
6
32