Skip to content

Instantly share code, notes, and snippets.

@keithwhor
Last active March 8, 2016 06:29
Show Gist options
  • Save keithwhor/48146b4e4a5bf1fb9175 to your computer and use it in GitHub Desktop.
Save keithwhor/48146b4e4a5bf1fb9175 to your computer and use it in GitHub Desktop.
A Nodal Example Controller for a Blog Post
module.exports = (() => {
'use strict';
const Nodal = require('nodal');
const BlogPost = Nodal.require('app/models/blog_post.js');
class BlogPostsController extends Nodal.Controller {
index() {
BlogPost.query()
.join('user') // Eager load joined tables
.join('comments')
.orderBy('created_at DESC')
.limit(10)
.end((err, blogPosts) => {
this.respond(err || blogPosts);
});
}
show() {
BlogPost.find(this.params.route.id, (err, blogPost) => {
if (err) {
return this.respond(err);
}
// Lazy load joined tables
blogPost.include((err, user, comments) => {
this.respond(err || blogPost);
});
}
}
create() {
BlogPost.create(this.params.body, (err, blogPost) => {
this.respond(err || blogPost);
});
}
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment