Skip to content

Instantly share code, notes, and snippets.

@Proful
Created January 13, 2012 17:57
Show Gist options
  • Save Proful/1607798 to your computer and use it in GitHub Desktop.
Save Proful/1607798 to your computer and use it in GitHub Desktop.
Sample CoreJS App
function MainController() {
var util = require('util');
this.authRequired = true;
public_get('/login', function(req, res) {
res.rawHttpMessage("Please " + "Authenticate →".link('/auth'));
});
public_get('/auth', function(req, res) {
app.session.create(req, res, {user: 'ernie'}, true, function(session) {
app.home(res);
});
});
get('/logout', function(req, res) {
app.session.destroy(req, res, function() {
app.login(res);
});
});
get('/', function(req, res) {
app.usersModel.getAll({
cacheID: 'users_query',
timeout: 3600
}, function(err, models) {
if (err) app.serverError(res, err);
else {
if (models.length > 0) res.end(util.inspect(models));
else res.end('No users yet.');
}
});
});
get('/new/:user/:pass', {user: 'alpha', pass: 'password'}, function(req, res) {
var userData = req.__params;
app.usersModel.insert(userData,
{cacheInvalidate: 'users_query'}, function(err, id) {
if (err) app.rawServerError(res, util.format("The user '%s' already exists.", userData.user), err);
else { app.home(res); }
});
});
get('/cleanup', function(req, res) {
app.usersModel.driver.deleteWhere({
condition: '1=1',
table: 'users',
cacheInvalidate: 'users_query'
}, function(err, info) {
if (err) app.serverErr(res, err);
else app.home(res);
})
});
get('/update/:user/:pass',
{user: 'alpha', pass: 'password'},
function(req, res) {
var userData = req.__params;
app.usersModel.find({user: userData.user}, function(err, model) {
if (err) app.serverError(res, err);
else {
if (model) {
model.pass = userData.pass;
model.save({cacheInvalidate: 'users_query'}, function(err) {
if (err) app.serverError(res, err);
else {
var msg = "Password for '%s' successfully updated. " + "Back Home →".link('/');
res.rawHttpMessage(util.format(msg, userData.user));
}
});
} else {
app.rawServerError(res, util.format("The user '%s' does not exist.", userData.user));
}
}
})
});
}
module.exports = MainController;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment