title: How to return Mongoose query results without callback
body: <p>I have an app which is structured: index > routes > endpoints > core, where endpoints process requests to send a response and core accesses the database. The point of dividing controllers in to these two components was partially to make things work after a DB change and  partially to simplify my code. The issue is that I can only get the results of a mongoose query function in my module via callback, which does not simplify my code at all. <br>
  What  I want:</p>
  
  <pre><code>var user = coreModule.findUser({id:123}) //return user
  var posts = coreModule.findPosts({author:123}) //return posts array
  res.render("home", {user:user, posts:posts})
  </code></pre>
  
  <p>By doing:</p>
  
  <pre><code>//core module example
  findUser: function(params){
     User.findOne(params, function(err,docs){
        if(err){
           return err
        }else{
           return docs
        }
     }
  }
  </code></pre>
  
  <p>But instead I have to use a mess of callback functions which defeat half of the purpose of core modules in the first place. I have seen that you can do this with SQL and Knex, but it will not work with mongoose. If what I am trying to do is impossible, is there a mongoose substitute that would be recommended in this case?</p>