回答編集履歴

2

追記2

2019/12/08 01:38

投稿

AkitoshiManabe
AkitoshiManabe

スコア5432

test CHANGED
@@ -73,3 +73,35 @@
73
73
  ```
74
74
 
75
75
  [Routerでも利用された方の記事](https://qiita.com/ponko2bunbun/items/a703346bedda1ee1a4eb)もありましたので、参考になるかもしれません。
76
+
77
+
78
+
79
+ 追記2)
80
+
81
+ まずは「公式ドキュメント」のサンプルコードのような実装を試しましょう。
82
+
83
+ ```
84
+
85
+ router.post("/path", [/*重要*/], (req,res)=>{
86
+
87
+  const errors = validationResult(req);
88
+
89
+ if(!errors.isEmpty()) {
90
+
91
+ // エラー時の処理(ここでは、単に エラーコード 400 で応答)
92
+
93
+ res.status(400).end();
94
+
95
+ return;
96
+
97
+ }
98
+
99
+ // エラーがなかったときの処理(ここでは、単に エラーコード 200 で応答)
100
+
101
+ res.status(200).end();
102
+
103
+ })
104
+
105
+ ```
106
+
107
+ コード内で **重要** と示した箇所に [パラメータに対するバリデーション関数](https://github.com/validatorjs/validator.js#validators) を与えます。

1

追記

2019/12/08 01:38

投稿

AkitoshiManabe
AkitoshiManabe

スコア5432

test CHANGED
@@ -23,3 +23,53 @@
23
23
  その他、参考程度にはなるということで「express-validator」を検索して「使ってみた系」のブログ記事を覗いてみるのも使い方を広げる手段になるでしょう。
24
24
 
25
25
  こうした記事も、**ブログ記事が書かれた時点の実装に過ぎない**ことを理解して読みましょう。
26
+
27
+
28
+
29
+ 追記)
30
+
31
+ 公式からは、第二引数にバリデーションのための引数をArray形式で与えて利用するようです。
32
+
33
+ ```
34
+
35
+ const { check, validationResult } = require('express-validator');
36
+
37
+
38
+
39
+ app.post('/user', [
40
+
41
+ // username must be an email
42
+
43
+ check('username').isEmail(),
44
+
45
+ // password must be at least 5 chars long
46
+
47
+ check('password').isLength({ min: 5 })
48
+
49
+ ], (req, res) => {
50
+
51
+ // Finds the validation errors in this request and wraps them in an object with handy functions
52
+
53
+ const errors = validationResult(req);
54
+
55
+ if (!errors.isEmpty()) {
56
+
57
+ return res.status(422).json({ errors: errors.array() });
58
+
59
+ }
60
+
61
+
62
+
63
+ User.create({
64
+
65
+ username: req.body.username,
66
+
67
+ password: req.body.password
68
+
69
+ }).then(user => res.json(user));
70
+
71
+ });
72
+
73
+ ```
74
+
75
+ [Routerでも利用された方の記事](https://qiita.com/ponko2bunbun/items/a703346bedda1ee1a4eb)もありましたので、参考になるかもしれません。