Actually I can't see why your code would not work, but an approach may be splitting it into smaller manageable components.
For validation you could define a function, that allows you to determine whether a field is valid or not (see isFieldValid
below).
isFieldValid = (field) -> field? and field.length > 0
app = connect()
.use(connect.bodyParser()) #So we can get the post data.
.use (req,res) ->
# pickup the body vars first to ease reading
{name, email, subject, question} = req.body
# valid should be always defined, even if it's only true/false
# Was all the data submitted?
valid = isFieldValid(name) and isFieldValid(email) and isFieldValid(question)
if valid
# process request
else
# handle invalid data
res.send(400, ...)
If you're looking for a more elaborate validation library I'd recommend Validator.
Hope that helps.