/ / angular push agrega un operador que da como resultado MongoError - javascript, angularjs, node.js, mongodb, meanjs

empuje angular agrega al operador que da como resultado MongoError - javascript, angularjs, node.js, mongodb, meanjs

Estoy implementando el tutorial en la pila media https://www.youtube.com/watch?v=AEE7DY2AYvI

Estoy agregando una función de eliminación para eliminar elementos de la base de datos con un clic de botón Eliminar el primer botón para eliminar el primer elemento de la lista de mongodb

Mi controlador del lado del cliente tiene las siguientes 2 funciones para agregar a db y eliminar

$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();
}

Mi servidor tiene el siguiente código

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

Cuando ejecuto mi código y si elimino un elemento ya cargado en la lista, se elimina de Mongodb perfectamente. Pero si agrego un elemento a la lista y yo no actualizar la página, produce un error en mi servidor que aparece como

    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

Si actualizo la página, se borra bien. Pero si agregué la entrada, angular parece estar agregando una nueva variable $ resuelta. ¿Por qué está pasando eso?

También otra pregunta, ¿Cuál es la forma correcta dellamada eliminar? Lo llamo ahora pero no puedo devolver la llamada. Quiero una devolución de llamada que regrese y luego cambio la lista de elementos. Intenté agregar una devolución de llamada pero el código nunca llega. es decir, probé lo siguiente

        /*
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");
});
*/

Soy muy nuevo en el nodo y estoy confundido. Cualquier ayuda es muy, muy apreciada

Respuestas

0 para la respuesta № 1

Parece que es posible llamar item.delete en lugar de Meetup.delete(item). Puede llamar a los mismos métodos en la instancia del modelo. Impide el envío de propiedades angulares al servidor.

Pero es mejor hacer una API de descanso con el método de eliminación

DELETE / meetups /: id

y enviar solo un _id

Meetup.remove({id: item._id});