回答編集履歴
1
誤りを修正
answer
CHANGED
@@ -1,6 +1,19 @@
|
|
1
|
-
このコードですと、最初に`/`か/`root`に一致するか判定をしており、`/root/hoge`にアクセスすると`/root`に一致していると判定されています。
|
2
|
-
も
|
1
|
+
もう一回手元で動かしましたが、質問のコードでconsole.logを埋め込んでみたところapp.useで/rootにhを設定する際にからのルーターになっています。
|
2
|
+
これは`hoge`が実行されていないためです。
|
3
|
+
app.useで設定しているrouter、登録時のものが設定されるため、先にRouterを設定しておくといいでしょう。
|
3
4
|
|
5
|
+
```js
|
6
|
+
let h = express.Router();
|
7
|
+
app.use('/', (req, res, next) => {
|
8
|
+
h = hoge()
|
9
|
+
next()
|
10
|
+
});
|
11
|
+
|
12
|
+
console.log(h)
|
13
|
+
|
14
|
+
app.use('/root', h)
|
15
|
+
```
|
16
|
+
|
4
17
|
ですので`/`と`/root`で同じRooterを利用したいのであれば、次のようなコードにしてみてはどうでしょうか?
|
5
18
|
便宜上appとの関係性がわかりやすいように1つのファイルとして書いています。
|
6
19
|
|