File tree Expand file tree Collapse file tree 1 file changed +26
-1
lines changed Expand file tree Collapse file tree 1 file changed +26
-1
lines changed Original file line number Diff line number Diff line change 4
4
5
5
クライアントのみのコードを書くとき、コードは毎回新しいコンテキストで評価されると考えることができます。しかし、 Node.js サーバは長時間実行されるプロセスです。コードがプロセスにはじめて要求されるとき、コードは一度評価されメモリ内にとどまります。つまり、シングルトンのオブジェクトを作成すると、すべての受信リクエストの間で共有されることになり、リクエスト間での状態の汚染リスクがあるということです。
6
6
7
- よって、 ** リクエストごとに新しいルート Vue インスタンスを作成する** 必要があります。そのためには、リクエストごとに新しいアプリケーションのインスタンスを作成する、繰り返し実行可能なファクトリ関数を書く必要があります。したがって、サーバコードは次のようになります:
7
+ ``` js
8
+ // bad
9
+ import app from ' ./app.js'
10
+
11
+ server .get (' *' , async (req , res ) => {
12
+ // アプリケーションは全ユーザで共有されます
13
+ const result = await renderToString (app)
14
+ // ...
15
+ })
16
+ ```
17
+
18
+ ``` js
19
+ // good
20
+ function createApp () {
21
+ return createSSRApp (/* ... */ )
22
+ }
23
+
24
+ server .get (' *' , async (req , res ) => {
25
+ // ユーザごとにアプリケーションを持ちます
26
+ const app = createApp ()
27
+ const result = await renderToString (app)
28
+ // ...
29
+ })
30
+ ```
31
+
32
+ したがって、 ** リクエストごとに新しいルート Vue インスタンスを作成する** 必要があります。そのためには、リクエストごとに新しいアプリケーションのインスタンスを作成する、繰り返し実行可能なファクトリ関数を書く必要があります:
8
33
9
34
``` js
10
35
// server.js
You can’t perform that action at this time.
0 commit comments