Javascript AngularJS+;ExpressJS+;mongoose:添加删除功能
我对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
<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}`);
}