Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS+;ExpressJS+;mongoose:添加删除功能_Javascript_Angularjs_Node.js_Express_Mongoose - Fatal编程技术网

Javascript AngularJS+;ExpressJS+;mongoose:添加删除功能

Javascript AngularJS+;ExpressJS+;mongoose:添加删除功能,javascript,angularjs,node.js,express,mongoose,Javascript,Angularjs,Node.js,Express,Mongoose,我对AngularJS很陌生,甚至对ExpressJS和Mongoose都比较新。我一直在遵循一个教程来发布和获取我的数据库,但我在添加删除功能时遇到了问题 下面是我调用删除函数的地方: <ul ng-repeat="disease in diseases"> <li> {{ disease.name }}: {{ disease.chipped }}, {{ disease.receive

我对AngularJS很陌生,甚至对ExpressJS和Mongoose都比较新。我一直在遵循一个教程来发布和获取我的数据库,但我在添加删除功能时遇到了问题

下面是我调用删除函数的地方:

<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.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错误:
删除http://localhost:4000/diseases/ 404(未找到)
即使在我的路线中包括:

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。路由器包括:

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/\u diseases.html
。我有一种感觉,我遗漏了一部分,但我就是不知道它是什么。

请确保启动Express HTTP server:

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}`);
}

我仍然得到同样的错误,只是现在它
DELETEhttp://localhost:4000/api/diseases/569edff5b829031c5ebcc75f 404(未找到)
仍然不走运。。。我收到了同样的
404
。这可能与找不到模板有关,而不是与url有问题有关吗?您是否实际启动了http express服务器,或者这是Node.js中的所有代码?让我们看看答案,还是来自聊天室?
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}`);
}