utils.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. crowi.models = models;
  40. module.exports = {
  41. models: models,
  42. mongoose: mongoose,
  43. }