回答編集履歴

6

編集

2016/10/06 03:10

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -34,10 +34,30 @@
34
34
 
35
35
 
36
36
 
37
- - `serializeUser` 「ユーザオブジェクトを与えてやるから,保存に成功したら`done`の第2引数ででユーザIDを渡してくれ.エラーがあったときは第1引数にそれを渡してくれ.」
37
+ - `serializeUser` 「ユーザオブジェクトを与えてやるから,保存に成功したら`done`の第2引数ででユーザIDを渡してくれ.エラーがあったときは第1引数にそれを渡してくれ.続く処理は俺(Passport)がやるからとりあえずその仕事だけよろしく.
38
38
 
39
- - `deserializeUser` 「ユーザIDを渡してやるから,復元に成功したら`done`の第2引数でユーザオブジェクトを渡してくれ.エラーがあったときは第1引数にそれを渡してくれ.」
39
+ - `deserializeUser` 「ユーザIDを渡してやるから,復元に成功したら`done`の第2引数でユーザオブジェクトを渡してくれ.エラーがあったときは第1引数にそれを渡してくれ.続く処理は俺(Passport)がやるからとりあえずその仕事だけよろしく.
40
40
 
41
41
 
42
42
 
43
- こういうことですね.実際にどのように保存や復元を行うかはプログラマが自由に選択できるということです.
43
+ こういうことですね.実際にどのように保存や復元を行うかはプログラマが自由に選択できるということです.関数の返り値を使わずにわざわざ`done`を実行させるのは,JavaScriptはおもに,非同期処理の実現にはコールバック関数モデルを採用しているからです.
44
+
45
+
46
+
47
+ ```JavaScript
48
+
49
+ User.findById(id, function(err, user) {
50
+
51
+ /* 成功または失敗時の処理 */
52
+
53
+ });
54
+
55
+ ```
56
+
57
+
58
+
59
+ `User.findById`がこのような使い方である以上,完了時に`done`を呼ばせるしかないですよね.
60
+
61
+ (もし`Promise`を返すような設計になっていれば必ずしもそうではないのですが…)
62
+
63
+

5

編集

2016/10/06 03:09

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -34,9 +34,9 @@
34
34
 
35
35
 
36
36
 
37
- - `serializeUser` 「ユーザオブジェクト与えてやるから,保存に成功したら`done`でユーザIDを渡してくれ」
37
+ - `serializeUser` 「ユーザオブジェクト与えてやるから,保存に成功したら`done`の第2引数ユーザIDを渡してくれ.エラーがあったときは第1引数にそれを渡してくれ.
38
38
 
39
- - `deserializeUser` 「ユーザIDを渡してやるから,復元に成功したら`done`でユーザオブジェクトを渡してくれ」
39
+ - `deserializeUser` 「ユーザIDを渡してやるから,復元に成功したら`done`の第2引数でユーザオブジェクトを渡してくれ.エラーがあったときは第1引数にそれを渡してくれ.
40
40
 
41
41
 
42
42
 

4

補足

2016/10/06 03:03

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- 要するに,`done`はEventEmitter的に,「成功したよ」「失敗したよ」と**Passport内部に対して**通知するイベントを発行しているようなものでしょうか.serializeUserの実行だけで十分な気もしますが
29
+ 要するに,`done`はEventEmitter的に,「成功したよ」「失敗したよ」と**Passport内部に対して**通知するイベントを発行しているようなものでしょうか.
30
30
 
31
31
 
32
32
 
@@ -34,4 +34,10 @@
34
34
 
35
35
 
36
36
 
37
+ - `serializeUser` 「ユーザオブジェクト与えてやるから,保存に成功したら`done`でユーザIDを渡してくれ」
38
+
39
+ - `deserializeUser` 「ユーザIDを渡してやるから,復元に成功したら`done`でユーザオブジェクトを渡してくれ」
40
+
41
+
42
+
37
- いうように,複雑な条件絡んでききに対処しやすくする工夫だそうです.
43
+ こういうことですね.実際にどのように保存や復元を行うかはプログラマ自由に選択できことです.

3

入門記事の追加

2016/10/06 03:01

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -2,19 +2,15 @@
2
2
 
3
3
 
4
4
 
5
+ [JavaScript中級者への道【5. コールバック関数】 - Qiita](http://qiita.com/matsuby/items/3f635943f25e520b7c20)
6
+
5
- [JavaScriptは如何にしてAsync/Awaitを獲得したのか Qiita版 - Qiita](http://qiita.com/gaogao_9/items/5417d01b4641357900c7)
7
+ (発展) [JavaScriptは如何にしてAsync/Awaitを獲得したのか Qiita版 - Qiita](http://qiita.com/gaogao_9/items/5417d01b4641357900c7)
8
+
9
+ (補足)[日本語のコードで理解するPromise - Qiita](http://qiita.com/mpyw/items/3e811d21a0877a51b8bd)
6
10
 
7
11
 
8
12
 
9
13
  ここでの`function () { ... } `は「準備ができたタイミングで関数を呼ぶ」の対象となるそれです.
10
-
11
-
12
-
13
- Promiseに関しての補足↓
14
-
15
-
16
-
17
- [日本語のコードで理解するPromise - Qiita](http://qiita.com/mpyw/items/3e811d21a0877a51b8bd)
18
14
 
19
15
 
20
16
 

2

編集

2016/10/05 23:23

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -1,4 +1,4 @@
1
- 下記記事に詳細な解説があるので読んでみてください.
1
+ コールバック関数等に関しては,下記記事に詳細な解説があるので読んでみてください.
2
2
 
3
3
 
4
4
 
@@ -10,12 +10,32 @@
10
10
 
11
11
 
12
12
 
13
- ---
14
-
15
-
16
-
17
13
  Promiseに関しての補足↓
18
14
 
19
15
 
20
16
 
21
17
  [日本語のコードで理解するPromise - Qiita](http://qiita.com/mpyw/items/3e811d21a0877a51b8bd)
18
+
19
+
20
+
21
+ ---
22
+
23
+
24
+
25
+ Passportの`done`に関しては以下に日本語で説明があります.
26
+
27
+
28
+
29
+ [Passport | 設定](http://knimon-software.github.io/www.passportjs.org/guide/configure/)
30
+
31
+
32
+
33
+ 要するに,`done`はEventEmitter的に,「成功したよ」「失敗したよ」と**Passport内部に対して**通知するイベントを発行しているようなものでしょうか.serializeUserの実行だけで十分な気もしますが
34
+
35
+
36
+
37
+ > このようにストラテジーに処理を委譲することで、検証用コールバックは、Passportとデータベースを疎に保ちます。 これによりアプリケーションは、認証レイヤーでの様々な前提条件にとらわれず、ユーザー情報をどのように格納するか自由に選択できます。
38
+
39
+
40
+
41
+ というように,複雑な条件が絡んできたときに対処しやすくする工夫だそうです.

1

ミス

2016/10/05 23:19

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- ここでの`done`は「準備ができたタイミングで関数を呼ぶ」の対象となるそれです.
9
+ ここでの`function () { ... } `は「準備ができたタイミングで関数を呼ぶ」の対象となるそれです.
10
10
 
11
11
 
12
12