teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

updateにも対応しました。

2015/05/12 09:05

投稿

TEA
TEA

スコア65

answer CHANGED
@@ -9,7 +9,6 @@
9
9
 
10
10
  ```lang-javascript
11
11
  // 追加・更新
12
- // → (変更)簡略にする為、追加のみとしました
13
12
  app.post("/api/users", function(req, res) {
14
13
  var user = req.body;
15
14
 
@@ -20,13 +19,18 @@
20
19
  console.log(i + " -> " + user[i].name);
21
20
  }
22
21
 
23
- // updateは簡略にする為、この場では使用しないことにしてみました。
22
+ // 更新
23
+ if (user._id){
24
- // if (user._id) user._id = mongodb.ObjectID(user._id);
24
+ user._id = mongodb.ObjectID(user._id);
25
-
25
+ users.save(user, function)(){
26
+ res.send("update");
27
+ }
28
+ }else{
29
+ //追加
26
- //users.save から insertに変更しました。
30
+ //users.save から users.insertに変更したところ、配列の追加ができました。
27
- users.insert(user, function() {
31
+ users.insert(user, function() {
28
- res.send("insert or update");
32
+ res.send("insert");
29
- });
33
+ });
30
34
  });
31
35
  ```
32
36
 

1

空のまま誤投稿により、内容の追記

2015/05/12 09:05

投稿

TEA
TEA

スコア65

answer CHANGED
@@ -1,3 +1,38 @@
1
+ naga3さん
2
+ khiroseさん
3
+
4
+ ご回答ありがとうございました!
5
+ アドバイスを元に色々試してみた結果、以下の内容で配列をinsertできました。khiroseさんからアドバイスを頂いた、サーバー側を変更してみました。
6
+
7
+
8
+ app.js の app.post("/api/users")の箇所の変更を以下のようにしました。
9
+
1
- ```lang-<ここに言語を入力>
10
+ ```lang-javascript
11
+ // 追加・更新
12
+ // → (変更)簡略にする為、追加のみとしました
13
+ app.post("/api/users", function(req, res) {
14
+ var user = req.body;
15
+
16
+ //入力された配列の確認
17
+ console.log("------- user -------");
18
+ console.log("user length: " + user.length);
19
+ for(var i=0; i < user.length; i++){
20
+ console.log(i + " -> " + user[i].name);
21
+ }
22
+
23
+ // updateは簡略にする為、この場では使用しないことにしてみました。
24
+ // if (user._id) user._id = mongodb.ObjectID(user._id);
25
+
26
+ //users.save から insertに変更しました。
27
+ users.insert(user, function() {
28
+ res.send("insert or update");
2
- コード
29
+ });
30
+ });
31
+ ```
32
+
33
+
34
+ front/index.htmlのjsについては ご回答いただいたnaga3さんよりアドバイスを頂いたのですが、変更前の内容でも問題なく動作しているようでした(app.jsのconsole.logで配列を確認してみました)。こちらは以下のままでは何か不具合が出そうでしょうか?知識不足でご迷惑をおかけしますが、改めてアドバイスを頂けましたら幸いです。
35
+
36
+ ```lang-javascript
37
+ return $resource('/api/users/:_id');
3
38
  ```