I've been creating simple classes for these types of things. For example, to create/edit a Person...
In my views:
%form{ action: "/person/new", method: "post" }
%input{ name: "person[age]", value: person.age }
Routes:
get("/person/new", function(){
this.render("person.html.haml", {
locals: { person: new Person() }
})
})
post("/person/new", function(){
var person = new Person(this.param('person'))
if (!person.valid())
return this.render("person.html.haml", {
locals: { person: person }
})
person.save() ...... etc
})
I create an instance of Person passing in the person object from the form. My Person class has validation and error message methods built in. If there were errors from failed validation you could get them with person.errors('age') etc.
Simple and works for me.