質問編集履歴

1

質問内容を詳しく書きなおした

2018/10/29 06:05

投稿

mote
mote

スコア128

test CHANGED
File without changes
test CHANGED
@@ -2,80 +2,54 @@
2
2
 
3
3
  新規登録として、データベースに{name : ~ , passwprd: ~ }とオブジェクトとして格納出来たのですが、
4
4
 
5
- 既に、登録されているかどうかの判定方法分かりません。
5
+ 既に、登録されているかどうかの判定が上手くいきません。
6
+
7
+
8
+
9
+ コードの説明としましては、クラスのメソッドの一部で、
10
+
11
+ myobjには、クライアント側から送信したオブジェクト{name:~,password:~}が入っています。
12
+
13
+ findOne()で"myobj"がテーブル"students"に入っていたらtrueを返すはずです。
14
+
15
+ しかし、データベースに格納していないデータをクライアント側から送信してもtrueが返ってきてしまい、
16
+
17
+ 常に「既に登録しています」が表示されてしまいます。
6
18
 
7
19
  ```js
8
20
 
9
- let MongoClient = require('mongodb').MongoClient;
10
-
11
- let url = "mongodb://localhost:27017/";
12
-
13
-
14
-
15
- login(){
21
+ login(){
16
22
 
17
23
  MongoClient.connect(url,{ useNewUrlParser: true }, (err, db) =>{
18
24
 
19
25
  if (err) throw err;
20
26
 
21
- var dbo = db.db("myobj");
27
+
22
28
 
23
29
  let myobj = {name : this.name, password : this.password } ;
24
30
 
31
+ let dbo = db.db("myobj");
25
32
 
33
+ let data = dbo.collection("students").findOne() ;
26
34
 
27
- dbo.collection("students").find({},function(err,res){
35
+ if(data){
28
36
 
29
- if(err) throw err ;
37
+ console.log("name:" + this.name + ",password:" + this.password + "は既に登録しています") ;
30
38
 
39
+ }else{
40
+
31
- console.log("finding...") ;
41
+ console.log("あなたは登録されていません");
42
+
43
+ }
44
+
45
+ db.close() ;
46
+
47
+ });
48
+
49
+ }
50
+
51
+ ```
32
52
 
33
53
 
34
54
 
35
- if(res == myobj){
36
-
37
- console.log("name:" + this.name + ",password:" + this.password + "は既に登録しています") ;
38
-
39
- }else{
40
-
41
- console.log("あなたは登録されていません");
42
-
43
- }
44
-
45
-
46
-
47
- db.close() ;
48
-
49
- });
50
-
51
- });
52
-
53
-
54
-
55
- }
56
-
57
- }
58
-
59
- ```
60
-
61
- 既に登録した nameとpasswordをフォームに書き込んでも、常に
62
-
63
- 「あなたは登録されていません」とコンソールに出てしまいます。
64
-
65
-
66
-
67
- もしかしたら自分の解釈が間違っているかもしれません。
68
-
69
- 自分の解釈としては、
70
-
71
- 自分がフォームに書き込んだ値のobject -> myobj -> (name:~,password:~ )の形
72
-
73
-
74
-
75
- 既にMongodbに格納したobject -> res -> (name:~.password:~)の形
76
-
77
-
78
-
79
- だと思っています。
55
+ ご指摘お願ます。
80
-
81
- もし間違っているところがあればご指摘ください。