What I'm trying to do is delete from the database using the MEAN stack. I've looked all over and seen sites using $resource but with a factory in angular. I've gotten creating and reading from the database but can't to figure out how to to delete. I've gotten the ObjectId from the database console logging but just can't wrap my head around sending the ObjectId to my server controller and handling the remove. Any help would be greatly appreciated thanks.
INDEX.HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div ng-app="meetupApp">
<div ng-controller="meetupsController">
<h1>There are {{meetups.length}} meetups</h1>
<ul>
<li ng-repeat="meetup in meetups" style="padding: 5px;">
<span style="display: inline-block; width: 10%;">{{meetup.name}}</span>
<button ng-click="remove(meetup._id)">Remove</button>
</li>
</ul>
<form ng-submit="createMeetup()">
<input type="text" name="name" id="name" ng-model="meetupName">
<button type="submit">Add</button>
</form>
</div>
</div>
<script type="text/javascript" src="http://ift.tt/1MwNz7a"></script>
<script type="text/javascript" src="http://ift.tt/1DB0cvg"></script>
<script type="text/javascript" src="/js/controllers/meetups-controller.js"></script>
</body>
</html>
Client Controller
var app = angular.module('meetupApp',['ngResource']);
app.controller('meetupsController',['$scope','$resource', function($scope, $resource){
var Meetup = $resource('/api/meetups'),
MeetupDelete = $resource('api/meetups/:_id');
var meetup = new Meetup();
Meetup.query(function(results){
$scope.meetups = results;
});
$scope.meetups = [];
$scope.createMeetup = function(){
meetup.name = $scope.meetupName;
meetup.$save(function(result){
$scope.meetups.push(result);
$scope.meetupName = '';
});
};
$scope.remove = function(id){
console.log(id);
/* This is what I'm unsure how to do... I know it's wrong but I gave it a try */
var meetupDeleteid = new MeetupDelete();
meetupDeleteid.$delete(function(id){
console.log(id);
});
};
}]);
Server.JS
var express = require('express'),
app = express(),
bodyParser = require('body-parser'),
mongoose = require('mongoose'),
meetupsController = require('./server/controllers/meetups-controller.js');
mongoose.connect('mongodb://localhost:27017/mean-demo');
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.get('/', function(req, res){
res.sendFile(__dirname + '/client/views/index.html');
});
app.use('/js', express.static(__dirname + '/client/js'));
app.delete('/api/meetups/:id', meetupsController.delete);
app.listen(3000, function(){
console.log('I\'m Listening...');
});
Sever Controller
var Meetup = require('../models/meetup.js');
module.exports.create = function(req, res){
var meetup = new Meetup(req.body);
meetup.save(function(err, result){
res.json(result);
});
};
module.exports.list = function(req, res){
Meetup.find({}, function(err, results){
res.json(results);
});
};
module.exports.delete = function(req, res){
var id = req.params.id;
console.log(id);
//This is what I'm unsure how to do...
Meetup.remove({_id: id}, function(err, results){
if (!err) {
res.json(results);
}
else {
console.log('error');
}
});
};
Meetup.JS
var mongoose = require('mongoose');
module.exports = mongoose.model('Meetup', {
name: String,
});
Aucun commentaire:
Enregistrer un commentaire