【发布时间】:2015-02-24 05:15:20
【问题描述】:
我正在平均堆栈上实现教程https://www.youtube.com/watch?v=AEE7DY2AYvI
我正在添加删除功能,以便在单击按钮时从数据库中删除项目
我的客户端控制器有以下 2 个函数可以添加到 db 和删除
$scope.createMeetup = function() {
var meetup = new Meetup();
meetup.name = $scope.meetupName;
meetup.$save(function (result) {
$scope.meetups.push(result);
$scope.meetupName = '';
});
}
$scope.deleteMeetup = function() {
item = $scope.meetups[0];
console.log("deleting meetup: " + item["name"]);
Meetup.delete(item);
scope.meetups.shift();
}
我的服务器端有以下代码
module.exports.create = function (req, res) {
var meetup = new Meetup(req.body);
meetup.save(function (err, result) {
res.json(result);
});
}
module.exports.remove = function(req, res) {
console.log("GOING TO REMOVE!!!");
console.log(req.query);
item = req.query;
Meetup.remove(item, function (err, results) {
console.log("done");
console.log(err);
console.log(results);
});
}
当我运行我的代码并删除列表中已加载的项目时,它会从 Mongodb 中删除就好了。但是,如果我将一个项目添加到列表中并且我不刷新页面,则会导致我的服务器出现错误,显示为
GOING TO REMOVE!!!
{ '$resolved': 'true',
__v: '0',
_id: '54ec04e70398fab504085178',
name: 'j' }
done
{ [MongoError: unknown top level operator: $resolved]
name: 'MongoError',
code: 2,
err: 'unknown top level operator: $resolved' }
null
如果我刷新页面,它会被删除。但是如果我添加了条目,angular 似乎正在添加一个新变量 $resolved。为什么会这样?
还有另一个问题,调用删除的正确方法是什么?我现在打电话给它,但我无法进行回调。我想要一个返回的回调,然后我移动项目列表。我尝试添加一个回调,但代码从未到达它。 即我尝试了以下
/*
Meetup.delete(item, function () {
console.log("In callback!!");
console.log(returnValue);
console.log(responseHeaders);
$scope.meetups.splice(item);
});
*/
/*Meetup.delete(item,
function (returnValue, responseHeaders) {
console.log("In callback!!");
console.log(returnValue);
console.log(responseHeaders);
$scope.meetups.splice(item);
},
function (httpResponse){
// error handling here
console.log("Need to handle errors");
});
*/
我对节点很陌生,很困惑。任何帮助都非常非常感谢
【问题讨论】:
标签: javascript angularjs node.js mongodb meanjs