diff --git a/example/models/posts.js b/example/models/posts.js index 2a6a6d5..964cf76 100644 --- a/example/models/posts.js +++ b/example/models/posts.js @@ -1,5 +1,6 @@ var mongoose = require('mongoose'), - Types = mongoose.Schema.Types; + Types = mongoose.Schema.Types, + MongooseResors = require('../../').MongooseResors; var schema = new mongoose.Schema({ title: { type: String }, @@ -15,9 +16,13 @@ var model = module.exports = mongoose.model('posts', schema); /* Resors */ -model.resors = { +var r = model.resors = new MongooseResors(model, { query: function(req, res, next) { res.query = res.query.populate('user'); next(); } +}); + +r.index = function(req, res, next) { + res.json('No.'); }; \ No newline at end of file diff --git a/lib/index.js b/lib/index.js index 6998f9d..02f832e 100644 --- a/lib/index.js +++ b/lib/index.js @@ -20,16 +20,18 @@ Resors.middleware = function(resources) { resors = Object.keys(resources) .filter(function(path) { var r = resources[path]; - return !r.modelName || (false !== r.resors && r.modelName[0] !== '_'); + return !r.modelName || (false !== r.resors && r.modelName[0] !== '_'); }) .map(function(path) { - var r = resources[path], - name = r.modelName; + var r = resources[path]; + + if (r.resors instanceof Resors) + r = r.resors; - if (r.modelName) + else if (r.modelName) r = new MongooseResors(r, r.resors || {}); - else if (!r.routes) + else if (!(r instanceof Resors)) r = new Resors(path, r); r.routes(app); diff --git a/lib/mongoose.js b/lib/mongoose.js index 2092f15..3f6244b 100644 --- a/lib/mongoose.js +++ b/lib/mongoose.js @@ -6,7 +6,7 @@ var Resors = require('./resors'), Mongoose Resors Class */ var MongooseResors = module.exports = function (model, options) { - MongooseResors.super_.call(this, model.modelName, options); + Resors.call(this, model.modelName, options); this.model = model; this.options.filtering || (this.options.filtering = Resors.helpers.paths(this.model)); }; diff --git a/test/test.js b/test/test.js index 84bce10..cd15355 100644 --- a/test/test.js +++ b/test/test.js @@ -1,5 +1,3 @@ -var testCase = require('nodeunit').testCase; - var mongoose = require('mongoose'), express = require('express'), Resors = require('../'), @@ -7,23 +5,14 @@ var mongoose = require('mongoose'), // mongoose mongoose.connect('mongodb://localhost/resors-test'); -var users = mongoose.model('users', { +var User = mongoose.model('users', { name: { type: String, required: true }, email: String }); -users.create({ name: 'Paul' }); - -// tests -module.exports = testCase({ - "0": function (test) { - test.ok(true); - test.done(); - }, - "simple mongoose model": function(test) { - var app = express(); - var r = new MongooseResors(users, users.resors); - r.routes(app); - test.done(); - } -}); +// test +var app = express(); +var r = new MongooseResors(User, User.resors); +r.routes(app); +console.log(r instanceof MongooseResors); +console.log(r instanceof Resors); \ No newline at end of file