2016-01-20 76 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