質問編集履歴

2

初心者マークを追加

2019/07/26 13:00

投稿

moga101
moga101

スコア15

test CHANGED
File without changes
test CHANGED
@@ -122,7 +122,7 @@
122
122
 
123
123
  var nm = req.body.name;
124
124
 
125
- var ml = req.body.mail;
125
+ var ml = req.body.mail; 
126
126
 
127
127
  var ag = req.body.age;
128
128
 

1

情報の追記

2019/07/26 13:00

投稿

moga101
moga101

スコア15

test CHANGED
File without changes
test CHANGED
@@ -37,3 +37,121 @@
37
37
  TypeError: validator is not a function
38
38
 
39
39
  ```
40
+
41
+
42
+
43
+
44
+
45
+ ## 追記
46
+
47
+ ご指摘いただいて、調べてみました。
48
+
49
+ 以下がvalidatiorの機能を追加するために変更した部分になります。
50
+
51
+ データベースに情報を追加するところです。
52
+
53
+ どうもvalidatorをapp.useで使用可能にするのは去年までの話だったみたいで、今では
54
+
55
+ const { check, validationResult } = require('express-validator');
56
+
57
+ という風にして使うみたいです。
58
+
59
+ それで書き直してみたのですが、エラーが出ず、どこがおかしいのかがわからないという状況です。。。。
60
+
61
+
62
+
63
+ ```
64
+
65
+ // 新規作成ページのアクセス
66
+
67
+ router.get('/add', (req, res, next) => {
68
+
69
+ var data = {
70
+
71
+ title: 'Hello/Add',
72
+
73
+ content: '新しいレコードを入力'
74
+
75
+ }
76
+
77
+ res.render('hello/add', data);
78
+
79
+ });
80
+
81
+ // 新規作成フォーム送信の処理
82
+
83
+ router.post('/add', (req, res, next) => {
84
+
85
+ check('name', 'NAMEは必ず入力してください。').notEmpty();
86
+
87
+ check('mail', 'MAILはメールアドレスを記入してください').isEmail();
88
+
89
+ check('age', 'AGEは年齢(整数)を入力してください').isInt();
90
+
91
+
92
+
93
+ const result = validationResult(req);
94
+
95
+ if (!result.isEmpty()) {
96
+
97
+ var re = '<ul class="error">';
98
+
99
+ var result_arr =result.array();
100
+
101
+ for(var n in result_arr) {
102
+
103
+ re += '<li>' + result_arr[n].msg + '</li>'
104
+
105
+ }
106
+
107
+ re += '</ul>';
108
+
109
+ var data = {
110
+
111
+ title: 'Hello/Add',
112
+
113
+ content: re,
114
+
115
+ form: req.body
116
+
117
+ }
118
+
119
+ res.render('hello/add', data);
120
+
121
+ } else {
122
+
123
+ var nm = req.body.name;
124
+
125
+ var ml = req.body.mail;
126
+
127
+ var ag = req.body.age;
128
+
129
+ var data = {'name': nm, 'mail':ml, 'age':ag};
130
+
131
+ // データベースの設定情報
132
+
133
+ var connection = mysql.createConnection(mysql_setting);
134
+
135
+ // データベースに接続
136
+
137
+ connection.connect();
138
+
139
+ // データを取り出す
140
+
141
+ connection.query('insert into mydata set ?', data,
142
+
143
+ function (error, results, fields) {
144
+
145
+ res.redirect('/hello');
146
+
147
+ });
148
+
149
+ // 接続を解除
150
+
151
+ connection.end();
152
+
153
+ };
154
+
155
+ });
156
+
157
+ ```