2017-05-10 8 views
0

私は、Angular4、Express 4.15、Node 7.9を使用しています。 私のGET、POST、PUTリクエストはすべて正常に動作していますが、なぜ削除機能が動作していないのか分かりません。私はmongodbとmongojsに接続するためにMlabを使いました。平均スタックの削除が機能しません - electionIdとは何ですか?

編集 - ポストマンで、私は私が理解していないelectionIdを取得要求(下記参照)

をDELETEやって、私はすべてのエラーが表示されない、とするとき、私、私は200レスポンスコードを取得削除ボタンをクリックします。ここでenter image description here

は、フロントエンドである -

<td><input (click)="deleteCandidate(candidate)" type="button" class="btn btn-danger pull-right" value="Delete"></td> 

私のコンポーネントで機能 -

deleteCandidate(candidate){ 
    var candidates = this.candidates; 

    this._candidateService.removeCandidate(candidate._id) 
    .map(res => res.json()) 
    .subscribe(data => { 
    if(data.n == 1){ 
     for(var i = 0; i < candidates.length; i++){ 
     if(candidates[i]._id == candidate._id){ 
      candidates.splice(i, 1); 
     } 
     } 
    } 
    }); 
} 

と、対応するサービス -

removeCandidate(id) 
    { 
     return this._http.delete('/api/v1/candidate/'+id); 
    } 

そして、ここでのルートですExpressJS(私はmongojsを使用しました) -

// Delete a candidate 
router.delete('/candidate/:id', function(req, res, next) { 
    db.candidates.remove({ 
     _id: mongojs.ObjectId(req.param.id) 
    }, '', function(err, result) { 
      if(err){ 
      res.send(err); 
     } 
     else { 
      res.json(result); 
     } 
    }); 
}); 

編集 - PostmanからDELETEリクエストを実行しようとしましたが、成功しません。私は次の応答を得る -

{ 
    "ok": 1, 
    "n": 0, 
    "opTime": { 
    "ts": "6418646173661265921", 
    "t": 1 
    }, 
    "electionId": "7fffffff0000000000000001" 
} 

あなたの助けに感謝します!

+0

「機能していません」があまりにも漠然としています...何が機能していませんか?アイテムが削除されない場所フロントエンドまたはバックエンドで?両方の端に – developer033

+0

@ developer033。私はPostmanをチェックしただけで、そこからも削除することはできません。これはバックエンドのものかもしれません。 「1 }、 :1、 "N":0、 "OPTIME":{ "のTS": "6418646173661265921"、 "T" { "OK" - これは私が郵便配達から取得応答でありますelectionId ":" 7fffffff0000000000000001 " } – codemode

答えて

0

応答内の"n": 0は、データベースクエリがどのドキュメントとも一致しなかったことを意味します。この場合、おそらくreq.params.idの代わりにreq.param.idを書き込んでいる可能性があります。

関連する問題