Guest User

Untitled

a guest
Dec 12th, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. var express = require('express');
  2. var mongoose = require('mongoose');
  3. var gridfs = require('gridfs-stream');
  4. var fs = require('fs');
  5.  
  6. var db_filename = "demo.jpg";
  7. var local_file = "./gridfs.jpg";
  8.  
  9. mongoose.connect('mongodb://localhost/test', { useMongoClient: true });
  10. mongoose.Promise = global.Promise;
  11. var app = express();
  12. gridfs.mongo = mongoose.mongo;
  13. var connection = mongoose.connection;
  14. connection.on('error', console.error.bind(console, 'connection error:'));
  15. connection.once('open', function () {
  16.  
  17. var gfs = gridfs(connection.db);
  18.  
  19. app.get('/', function (req, res) {
  20. res.send('Demo of MongoDB – GridFS by niralar.com');
  21. });
  22.  
  23. // Writing a file from local to MongoDB
  24. app.get('/write', function (req, res) {
  25. var writestream = gfs.createWriteStream({ filename: db_filename });
  26. fs.createReadStream(local_file).pipe(writestream);
  27. writestream.on('close', function (file) {
  28. res.send('File Created : ' + file.filename);
  29. });
  30. });
  31.  
  32. // Reading a file from MongoDB
  33. app.get('/read', function (req, res) {
  34. // Check file exist on MongoDB
  35. gfs.exist({ filename: db_filename }, function (err, file) {
  36. if (err || !file) {
  37. res.send('File Not Found');
  38. } else {
  39. var readstream = gfs.createReadStream({ filename: db_filename });
  40. readstream.pipe(res);
  41. }
  42. });
  43. });
  44.  
  45. // Delete a file from MongoDB
  46. app.get('/delete', function (req, res) {
  47. gfs.exist({ filename: db_filename }, function (err, file) {
  48. if (err || !file) {
  49. res.send('File Not Found');
  50. } else {
  51. gfs.remove({ filename: db_filename }, function (err) {
  52. if (err) res.send(err);
  53. res.send('File Deleted');
  54. });
  55. }
  56. });
  57. });
  58.  
  59. // Get file information(File Meta Data) from MongoDB
  60. app.get('/meta', function (req, res) {
  61. gfs.exist({ filename: db_filename }, function (err, file) {
  62. if (err || !file) {
  63. res.send('File Not Found');
  64. } else {
  65. gfs.files.find({ filename: db_filename }).toArray(function (err, files) {
  66. if (err) res.send(err);
  67. res.send(files);
  68. });
  69. }
  70. });
  71. });
  72.  
  73. app.listen(3000, () => console.log('Example app listening on port 3000!'))
  74.  
  75. });
Add Comment
Please, Sign In to add comment