utils.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. 'use strict';
  2. var mongoUri = process.env.MONGOLAB_URI || process.env.MONGOHQ_URL || process.env.MONGO_URI || null
  3. , mongoose= require('mongoose')
  4. , models = {}
  5. , crowi = new (require(ROOT_DIR + '/lib/crowi'))(ROOT_DIR, process.env)
  6. ;
  7. before('Create database connection and clean up', function (done) {
  8. if (!mongoUri) {
  9. return done();
  10. }
  11. mongoose.connect(mongoUri);
  12. function clearDB() {
  13. for (var i in mongoose.connection.collections) {
  14. mongoose.connection.collections[i].remove(function() {});
  15. }
  16. return done();
  17. }
  18. if (mongoose.connection.readyState === 0) {
  19. mongoose.connect(mongoUri, function (err) {
  20. if (err) {
  21. throw err;
  22. }
  23. return clearDB();
  24. });
  25. } else {
  26. return clearDB();
  27. }
  28. });
  29. after('Close database connection', function (done) {
  30. if (!mongoUri) {
  31. return done();
  32. }
  33. mongoose.disconnect();
  34. return done();
  35. });
  36. models.Page = require(MODEL_DIR + '/page.js')(crowi);
  37. models.User = require(MODEL_DIR + '/user.js')(crowi);
  38. models.Config = require(MODEL_DIR + '/config.js')(crowi);
  39. models.Revision = require(MODEL_DIR + '/revision.js')(crowi);
  40. models.UpdatePost = require(MODEL_DIR + '/updatePost.js')(crowi);
  41. crowi.models = models;
  42. module.exports = {
  43. models: models,
  44. mongoose: mongoose,
  45. }