Guest User

Untitled

a guest
Jan 21st, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.20 KB | None | 0 0
  1. var Mongolian = require("mongolian");
  2. bson = require('mongodb').BSONPure;
  3.  
  4.  
  5.  
  6.  
  7. /**
  8. * DatabaseHelper defines database collections and handles connect to the database.
  9. *
  10. * Usage:
  11. *
  12. * var db = require('DatabaseHelper.js');
  13. *
  14. * db.myCollection.find(...);
  15. * db.myCollection.save(...);
  16. *
  17. */
  18.  
  19. /////////////////////////////////////////////////////////////////////////
  20. //++//
  21. //++++//
  22. //++//
  23. //++++// Constructor
  24. //++//
  25. //++++//
  26. //++//
  27. //////////////////////////////////////////////////////////////////////////
  28.  
  29.  
  30. function DatabaseHelper() {};
  31.  
  32. //----------------------------------
  33. // Private members
  34. //----------------------------------
  35.  
  36. // Create a server instance with default host and port, or provide your own configuraiton
  37. var server = new Mongolian();
  38.  
  39. // store all collections in this database
  40. var db = server.db('my_database');
  41.  
  42. // define another db if you want
  43. var dev_db = server.db('dev_db');
  44.  
  45.  
  46. //----------------------------------
  47. // Public Members
  48. //----------------------------------
  49.  
  50. // Define some collections
  51.  
  52. // This is nice because if you accidentally mistype a collection, you'll
  53. // get a javascript exception instead of stealth-saving to the wrong
  54.  
  55. DatabaseHelper.prototype.my_collection = db.collection('my_collection');
  56. DatabaseHelper.prototype.users = db.collection('users');
  57. DatabaseHelper.prototype.posts = db.collection('posts');
  58. DatabaseHelper.prototype.comments = db.collection('comments');
  59. DatabaseHelper.prototype.whatever = db.collection('whatever');
  60. DatabaseHelper.prototype.anotherDB = dev_db.collection('myCollection');
  61.  
  62.  
  63.  
  64.  
  65. //----------------------------------
  66. // Session Store
  67. //----------------------------------
  68. // Usage: app.use(express.session({secret: 'your secret here', store: db.session_store}));
  69. var sessions = db.collection('sessions');
  70. DatabaseHelper.prototype.session_store = {
  71.  
  72.  
  73. get: function(session_id, callback) {
  74.  
  75. sessions.findOne({_id: session_id}, function(error, result) {
  76.  
  77. if(result)
  78. callback(null, JSON.parse(result.toString()));
  79. else if(error)
  80. callback(error);
  81.  
  82. });
  83.  
  84. },
  85.  
  86. set: function(session_id, session, callback) {
  87.  
  88. var update = {_id: session_id, session: JSON.stringify(session)};
  89.  
  90. if(session && session.cookie && session.cookie.expires)
  91. update.expires = Date.parse(session.cookie.expires);
  92.  
  93. sessions.update({_id: session_id}, update, true, function(error, result)
  94. {
  95. callback(error, result);
  96. });
  97.  
  98. },
  99.  
  100. destroy: function(session_id, callback) {
  101.  
  102. sessions.remove({_id: session_id}, callback);
  103.  
  104. },
  105.  
  106. length: function(callback) {
  107.  
  108. sessions.count({}, callback)
  109.  
  110. },
  111.  
  112. clear: function(callback) {
  113.  
  114. db.sessions.drop(callback);
  115.  
  116. }
  117.  
  118. };
  119.  
  120.  
  121. //----------------------------------
  122. // Misc.
  123. //----------------------------------
  124.  
  125. //helpers for converting to BSON types, avoid making a collection of the same name
  126. DatabaseHelper.prototype.Long = bson.Long;
  127. DatabaseHelper.prototype.ObjectId = bson.ObjectID;
  128. DatabaseHelper.prototype.Timestamp = bson.Timestamp;
  129. DatabaseHelper.prototype.Binary = bson.Binary;
  130. DatabaseHelper.prototype.DBRef = bson.DBRef;
  131. DatabaseHelper.prototype.Code = bson.Code;
  132.  
  133.  
  134.  
  135. module.exports = new DatabaseHelper();
Add Comment
Please, Sign In to add comment