0.1.142 • Published 6 years ago

mzen v0.1.142

Weekly downloads
-
License
BSD-3-Clause
Repository
github
Last release
6 years ago

mzen

NodeJS application model

NodeJS Application Model

  • Model elements are defined by Schemas, Services and Repositories
    • Schemas define data structures and validation rules
    • Repositories are responsible for persisting data
      • Data saved and retrieved from the database via repositories
      • Each repository has a schema which defines it data structure
      • Repositories can define relations between each other (one-many, many-to-many etc)
      • Services use repositories to save and load entities
    • Services handle interaction between (checkout, authenticator, report-generator, email)
  • Schema
    • Validation
    • Type-casting
  • Object Document Mapping (ODM)
    • Populate documents into constructor instances
    • Populate document relations
  • Data sources

    • Currently only supports MongoDB
  • Document relation population

    • Common relations supported
      • hasOne
      • hasMany
      • hasManyCount (count of the number of matching related documents)
      • belongsToOne
      • belongsToMany (many-to-many using an embedded reference array)
      • embeddedHasOne (an embedded relation joins on data within the same document)
      • embeddedHasMany
      • embeddedBelongsToOne
      • embeddedBelongsToMany
    • Basic query optimisation
    • Relations may be configured to auto-populate allowing a complex reference tree to be loaded with minimum code
      • Population of relations (and nested relations) may be enabled/disabled in query options
    • Relations may be auto-populated from initial query or manually populated on to an existing result set
  • Data validation and type-casting

    • Define document structure as a set of fields and embedded documents
    • Built-in validators
      • required
        • field must be present
      • notNull
      • notEmpty
      • length (min/max)
      • regex
      • equality (must be equal to another field in the same object)
      • email
    • Supports custom validators
    • Default values
      • Default value is used when validating, inserting or updating a field with an undefined or null value
    • Type-casting
      • When field type is configured, value is cast to the required type on validation, insert or update
      • Cast failure produces a validation error
        • e.g. casting the string 'three' to type number would produce NaN resulting in a validation error
      • Supports ObjectID type (BSON/MongoDB)
0.1.142

6 years ago

0.1.141

6 years ago

0.1.140

6 years ago

0.1.139

6 years ago

0.1.138

6 years ago

0.1.137

6 years ago

0.1.136

6 years ago

0.1.135

6 years ago

0.1.134

6 years ago

0.1.133

6 years ago

0.1.132

6 years ago

0.1.131

6 years ago

0.1.130

6 years ago

0.1.129

6 years ago

0.1.128

6 years ago

0.1.127

6 years ago

0.1.126

6 years ago

0.1.125

6 years ago

0.1.124

6 years ago

0.1.123

6 years ago

0.1.122

6 years ago

0.1.121

6 years ago

0.1.120

6 years ago

0.1.119

6 years ago

0.1.118

6 years ago

0.1.117

6 years ago

0.1.116

6 years ago

0.1.115

6 years ago

0.1.114

6 years ago

0.1.113

6 years ago

0.1.112

6 years ago

0.1.111

6 years ago

0.1.110

6 years ago

0.1.109

6 years ago

0.1.107

6 years ago

0.1.106

6 years ago

0.1.105

6 years ago

0.1.104

6 years ago

0.1.103

6 years ago

0.1.102

6 years ago

0.1.101

6 years ago

0.1.100

6 years ago

0.1.99

6 years ago

0.1.98

6 years ago

0.1.97

6 years ago

0.1.96

6 years ago

0.1.95

6 years ago

0.1.94

6 years ago

0.1.93

6 years ago

0.1.92

6 years ago

0.1.91

6 years ago

0.1.90

6 years ago

0.1.89

6 years ago

0.1.88

6 years ago

0.1.87

6 years ago

0.1.86

6 years ago

0.1.85

6 years ago

0.1.84

6 years ago

0.1.83

6 years ago

0.1.82

6 years ago

0.1.80

6 years ago

0.1.79

6 years ago

0.1.78

6 years ago

0.1.77

6 years ago

0.1.76

6 years ago

0.1.75

6 years ago

0.1.74

6 years ago

0.1.73

6 years ago

0.1.72

6 years ago

0.1.71

6 years ago

0.1.70

6 years ago

0.1.69

6 years ago

0.1.68

6 years ago

0.1.67

7 years ago

0.1.66

7 years ago

0.1.65

7 years ago

0.1.64

7 years ago

0.1.63

7 years ago

0.1.62

7 years ago

0.1.61

7 years ago

0.1.60

7 years ago

0.1.59

7 years ago

0.1.58

7 years ago

0.1.57

7 years ago

0.1.56

7 years ago

0.1.55

7 years ago

0.1.54

7 years ago

0.1.53

7 years ago

0.1.52

7 years ago

0.1.51

7 years ago

0.1.50

7 years ago

0.1.49

7 years ago

0.1.48

7 years ago

0.1.47

7 years ago

0.1.45

7 years ago

0.1.44

7 years ago

0.1.42

7 years ago

0.1.41

7 years ago

0.1.40

7 years ago

0.1.38

7 years ago

0.1.37

7 years ago

0.1.36

7 years ago

0.1.35

7 years ago

0.1.34

8 years ago

0.1.33

8 years ago

0.1.32

8 years ago

0.1.31

8 years ago

0.1.30

8 years ago

0.1.29

8 years ago

0.1.28

8 years ago

0.1.27

8 years ago

0.1.26

8 years ago

0.1.25

8 years ago

0.1.24

8 years ago

0.1.23

8 years ago

0.1.22

8 years ago

0.1.21

8 years ago

0.1.20

8 years ago

0.1.19

8 years ago

0.1.18

8 years ago

0.1.17

8 years ago

0.1.16

8 years ago

0.1.15

8 years ago

0.1.14

8 years ago

0.1.13

8 years ago

0.1.12

8 years ago

0.1.11

8 years ago

0.1.10

8 years ago

0.1.9

8 years ago

0.1.8

8 years ago

0.1.7

8 years ago

0.1.6

9 years ago

0.1.5

9 years ago

0.1.4

9 years ago

0.1.3

9 years ago

0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago