Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. var CourseSchema = new mongoose.Schema({
  2. name: { type: String, required: true },
  3. code: { type: String, required: true, unique: 1, uppercase: 1 },
  4. files: [{ type: mongoose.Schema.Types.ObjectId, ref: 'File' }]
  5. // more fields
  6. });
  7.  
  8. var FileSchema = new mongoose.Schema({
  9. name: { type: String, required: true }
  10. // more fields
  11. });
  12.  
  13. var fs = require('fs');
  14.  
  15. var async = require('async'),
  16. mongoose = require('mongoose');
  17.  
  18. exports.deleteFiles = function (req, res) {
  19. // loop through selected file-ids
  20. async.eachSeries(req.body.files, function (id, done) {
  21. // remove file from File collection
  22. models.File.findByIdAndRemove(id, function (err, file) {
  23. if (err) {
  24. return done(err);
  25. } else if (!file) {
  26. return done();
  27. }
  28. var path = __dirname + '/../public/upl/' + req.course.id + '/' + file.name;
  29. // remove file reference from Course document
  30. req.course.files.pull(mongoose.Types.ObjectId(id));
  31. req.course.save(function (err) {
  32. if (err) {
  33. return done(err);
  34. }
  35. // remove file from filesystem
  36. fs.stat(path, function (err, stats) {
  37. if (err && err.code === 'ENOENT') {
  38. return done();
  39. } else if (err) {
  40. return done(err);
  41. }
  42. if (stats.isFile()) {
  43. fs.unlink(path, done);
  44. }
  45. });
  46. });
  47. });
  48. }, function (err) {
  49. if (err) {
  50. console.log(err);
  51. req.flash('failure', 'Unable to delete files at this time.');
  52. } else {
  53. req.flash('success', 'The files have been deleted successfully.');
  54. }
  55. res.redirect('/admin/courses/' + req.course.id + '/files');
  56. });
  57. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement