Form error handling for dietjs
- You can demand
request.body[..]
values to match criterias like existence, length etc.. - The module is accessible in every
POST
request - The module can be accessed with the
request.demand
function - The module accepts unlimited agruments, each argument by right goes deeper in
request.body
- If
request.passed
is true than the form request has passed - If
request.passed
is false thenrequest.errors
contains the errors in JSON - You can answer if
request.passed
withresponse.success(data)
- else with
response.error(data)
- data is optional
When a POST
request comes in (from a form or ajax request) with these parameters:
{
'account':{
username:'adam',
password:'123456',
},
'remain_logged_in': true
}
You can check if everything is ok with the submitted data with request.check
:
var app = new Application(options);
app.get('/login', function(request, response, mysql){
// DEMAND values to be specific
request.demand('username').length(0,40);
request.demand('email').length(0,40).isEmail();
request.demand('password').length(0,40).equals(request.body.password_again);
request.demand('options', 'remain_logged_in').isBoolean().length(0,1);
// IF request has passed
if(request.passed){
response.success(); // { passed: true, errors: false}
mysql.end();
} else {
response.error(); // { passed: true, errors: [{..},{..}]}
mysql.end();
}
});
Function | Condition | Example | Use Case |
---|---|---|---|
is |
regex | /([0-9]+)/i |
request.demand('id').is(/([0-9]+)/i) |
isset |
defined | undefined vs hell world |
request.demand('message').isset() |
isArray |
array | [1,3,5,7] |
request.demand('users').isArray() |
isNumber |
integer | 8080 |
request.demand('birth_day').isNumber() |
isBoolean |
boolean | true or false |
request.demand('agree').isBoolean() |
isText |
alpha | A simple text |
request.demand('username').isText() |
isString |
string | 52 people likes you today! |
request.demand('message').isString() |
isSlug |
slug | seomthing_like_this_842 |
request.demand('username').isSlug() |
isEmail |
me@email.com |
request.demand('email').isEmail() |
|
isURL |
url | http://example.com/?p=10 |
request.demand('personal_blog').isUrl() |
length |
range | hello is 4 |
request.demand('tweet').length(0, 140) |
equals |
comparison | comparing value a with b |
request.demand('agree').equals('true') |
request.error(field, message)
- both attributes arerequired
response.success(data)
- the default response value is
{ passed: true, errors: false}
data
is appended to the default json response but it'soptional
- the default response value is
response.error(data)
- the default response value is
{ passed: false, errors: [...]}
data
is appended to the default json response but it'soptional
errors
contain a list of erros with
- the default response value is
added
: request.error(field, message)added
: response.success(data)added
: response.error(data)
added
Echo to arguments for multi languageisset demading
- Several Bug Fixes
- First Release