Registering a user and login
Regarding your validations - extract each of your validations in validation object.
You can do something like:

class Validator {

isValid(obj) {
//return false if obj is not valid
}

message(obj) {
//return error object if obj is not valid
}

status() {
//error status if validation fails
}

}


Then you can have like EmailValidator, Required, etc. implementation, which validates email strings, etc.
You then just iterate through all current validators and if any of them fails to validate, you use it's error message and status to return error object. That way you can easily configure this by editing current validator list and reuse them in different parts of code.