2016-01-20 72 views
0

我是AngularJS的新手,甚至更新ExpressJS和Mongoose。我一直在按照教程發佈,並從我的數據庫中獲取,但我在添加刪除功能時遇到了問題。AngularJS + ExpressJS +貓鼬:添加刪除功能

這裏是我打電話給我的刪除功能:

<ul ng-repeat="disease in diseases"> 
    <li> 
     {{ disease.name }}: {{ disease.chipped }}, 
          {{ disease.received }}, 
          {{ disease.smashed }}, 
          {{ disease.complete }} 
    </li> 
    <button ng-click="removeDisease(disease)"></button> 
</ul> 

...在我的控制,我有:

app.controller('MainCtrl', [ 
    '$scope', 
    'TrelloApi', 
    'diseases', 
    function($scope, TrelloApi, diseases){ 

     $scope.diseases = diseases.diseases; 

     $scope.removeDisease = function(disease) { 
      console.log(disease); 
      diseases.destroy(disease); 
     } 
    } 
]); 

...這就要求我diseases廠:

app.factory('diseases', [ 
    '$http', 
    function($http){ 

     var o = { 
      diseases: [] 
     }; 

     o.destroy = function(disease) { 
      return $http.delete('/diseases/' + disease._id).success(function(data){ 
       console.log("Disease " + disease.name + " has been removed!"); 
       o.getAll(); 
      }); 
     }; 

     return o; 
    } 
]); 

這將返回一個404錯誤: DELETE http://localhost:4000/diseases/<id> 404 (Not Found)即使thoug我在我的路線^ h包括:

var mongoose = require('mongoose'); 
var express = require('express'); 
var router = express.Router(); 
var Disease = mongoose.model('Disease'); 

// Not functional 
router.delete('/diseases/:id', function(req, res, next) { 
    console.log(req); 
}); 

// Functional 
router.post('/diseases', function(req, res, next) { 
    var disease = new Disease(req.body); 

    disease.save(function(err, diseases){ 
    if(err){ return next(err); } 

    res.json(diseases); 
    }); 
}); 

...和ui.router包括:

app.config([ 
    'TrelloApiProvider', 
    '$stateProvider', 
    '$urlRouterProvider', 
    function(TrelloApiProvider, $stateProvider, $urlRouterProvider) { 

     .state('diseases', { 
      url: '/diseases/{id}', 
      templateUrl: '/javascripts/home/_diseases.html', 
      controller: 'MainCtrl' 
     }); 

     $urlRouterProvider.otherwise('home'); 
    } 
]); 

還有一個在/javascripts/home/_diseases.html發現了一個模板。我有一種感覺,我失去了一塊,但我無法弄清楚它是什麼。

回答

0

確保您快速啓動HTTP服務器:

const express = require('express'); 
const router = express.Router(); 

router.delete('/diseases/:id', function(req, res, next) { 
    const id = req.params.id; 
    console.log(id); 
}); 

const app = express(); 

app.use('/', router); 

const server = http.createServer(app).listen(8080, serverCallback); 

function serverCallback() { 
    const host = server.address().address; 
    const port = server.address().port; 
    console.log(`Server listening on ${host}:${port}`); 
} 
+0

我仍然得到同樣的錯誤,只是現在它的'刪除HTTP://本地主機:4000/API /疾病/ 569edff5b829031c5ebcc75f 404(未找到)' –

+0

仍然沒有運氣......我收到相同的'404'。它可能與找不到模板而不是網址錯誤有關嗎? –

+0

你真的開始了http express服務器嗎?或者這是Node.js中的所有代碼? – krl