回答編集履歴

1

環境作って動作確認したので追記

2019/12/11 09:31

投稿

rururu3
rururu3

スコア5545

test CHANGED
@@ -13,3 +13,197 @@
13
13
  ```
14
14
 
15
15
  これじゃないのかな(`String`ではなくユーザー名及びパスワードを文字列として入れないといけないのでは)
16
+
17
+
18
+
19
+ ---
20
+
21
+ コメントでのエラー内容を環境作って試しました
22
+
23
+
24
+
25
+ app.js
26
+
27
+ ```js
28
+
29
+ // server.js
30
+
31
+
32
+
33
+ // 必要なパッケージの読み込み
34
+
35
+ var express = require('express');
36
+
37
+ var app = express();
38
+
39
+ var bodyParser = require('body-parser');
40
+
41
+
42
+
43
+ var mongoose = require('mongoose');
44
+
45
+
46
+
47
+ // DBへの接続
48
+
49
+ var mongoose = require('mongoose');
50
+
51
+ mongoose.connect('mongodb://localhost/backend');
52
+
53
+
54
+
55
+ // モデルの宣言
56
+
57
+ var User = require('./models/user');
58
+
59
+
60
+
61
+ // POSTでdataを受け取るための記述
62
+
63
+ app.use(bodyParser.urlencoded({ extended: true }));
64
+
65
+ app.use(bodyParser.json());
66
+
67
+
68
+
69
+ // 3000番を指定
70
+
71
+ var port = process.env.PORT || 3000;
72
+
73
+
74
+
75
+ // expressでAPIサーバを使うための準備
76
+
77
+ var router = express.Router();
78
+
79
+
80
+
81
+ router.use(function(req, res, next) {
82
+
83
+ console.log('Something is happening.');
84
+
85
+ next();
86
+
87
+ });
88
+
89
+
90
+
91
+ // 正しく実行出来るか左記にアクセスしてテストする (GET http://localhost:3000/api)
92
+
93
+ router.post('/', function(request, response){
94
+
95
+ console.log("catch the post request");
96
+
97
+ response.setHeader('Content-Type', 'text/plain');
98
+
99
+
100
+
101
+ // パラメータ名、usernameとpassを出力
102
+
103
+ console.log(request.body.username);
104
+
105
+ console.log(request.body.password);
106
+
107
+
108
+
109
+ var username = request.body.username;
110
+
111
+ var password = request.body.password;
112
+
113
+
114
+
115
+ User.find({ "username" : username }, function(err, result){
116
+
117
+ if (err)
118
+
119
+ console.log(err);
120
+
121
+
122
+
123
+ // 新規登録
124
+
125
+ if (result.length == 0){
126
+
127
+ var user = new User();
128
+
129
+
130
+
131
+ user.username = username;
132
+
133
+ user.password = password;
134
+
135
+
136
+
137
+ user.save(function(err){
138
+
139
+ if (err) console.log(err);
140
+
141
+ response.send("new_created");
142
+
143
+ });
144
+
145
+ }
146
+
147
+ // usernameがDBに存在した場合
148
+
149
+ else{
150
+
151
+ if (result[0].password == password)
152
+
153
+ response.send("true");
154
+
155
+ else
156
+
157
+ response.send("false");
158
+
159
+ }
160
+
161
+ });
162
+
163
+ });
164
+
165
+
166
+
167
+ // ルーティング登録
168
+
169
+ app.use('/api', router);
170
+
171
+
172
+
173
+ //サーバ起動
174
+
175
+ app.listen(port);
176
+
177
+ console.log('listen on port ' + port);
178
+
179
+ ```
180
+
181
+
182
+
183
+ user.js
184
+
185
+ ```js
186
+
187
+ var mongoose = require('mongoose');
188
+
189
+ var Schema = mongoose.Schema;
190
+
191
+
192
+
193
+ var User = new Schema({
194
+
195
+ username : { type: String, require: true, unique: true },
196
+
197
+ password : { type: String, require: true }
198
+
199
+ });
200
+
201
+
202
+
203
+ module.exports = mongoose.model('user', User);
204
+
205
+ ```
206
+
207
+
208
+
209
+ `curl -X POST -H "Content-Type: application/json" -d '{"username": "username", "password": "password"}' localhost:3000/api`で`new_created`と帰ってきたので、乗ってないソース部分でなってますね