0.1.142 • Published 4 years ago

mzen v0.1.142

Weekly downloads
-
License
BSD-3-Clause
Repository
github
Last release
4 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

4 years ago

0.1.141

4 years ago

0.1.140

4 years ago

0.1.139

4 years ago

0.1.138

4 years ago

0.1.137

4 years ago

0.1.136

4 years ago

0.1.135

4 years ago

0.1.134

4 years ago

0.1.133

4 years ago

0.1.132

4 years ago

0.1.131

4 years ago

0.1.130

4 years ago

0.1.129

4 years ago

0.1.128

4 years ago

0.1.127

4 years ago

0.1.126

4 years ago

0.1.125

4 years ago

0.1.124

4 years ago

0.1.123

4 years ago

0.1.122

5 years ago

0.1.121

5 years ago

0.1.120

5 years ago

0.1.119

5 years ago

0.1.118

5 years ago

0.1.117

5 years ago

0.1.116

5 years ago

0.1.115

5 years ago

0.1.114

5 years ago

0.1.113

5 years ago

0.1.112

5 years ago

0.1.111

5 years ago

0.1.110

5 years ago

0.1.109

5 years ago

0.1.107

5 years ago

0.1.106

5 years ago

0.1.105

5 years ago

0.1.104

5 years ago

0.1.103

5 years ago

0.1.102

5 years ago

0.1.101

5 years ago

0.1.100

5 years ago

0.1.99

5 years ago

0.1.98

5 years ago

0.1.97

5 years ago

0.1.96

5 years ago

0.1.95

5 years ago

0.1.94

5 years ago

0.1.93

5 years ago

0.1.92

5 years ago

0.1.91

5 years ago

0.1.90

5 years ago

0.1.89

5 years ago

0.1.88

5 years ago

0.1.87

5 years ago

0.1.86

5 years ago

0.1.85

5 years ago

0.1.84

5 years ago

0.1.83

5 years ago

0.1.82

5 years ago

0.1.80

5 years ago

0.1.79

5 years ago

0.1.78

5 years ago

0.1.77

5 years ago

0.1.76

5 years ago

0.1.75

5 years ago

0.1.74

5 years ago

0.1.73

5 years ago

0.1.72

5 years ago

0.1.71

5 years ago

0.1.70

5 years ago

0.1.69

5 years ago

0.1.68

5 years ago

0.1.67

6 years ago

0.1.66

6 years ago

0.1.65

6 years ago

0.1.64

6 years ago

0.1.63

6 years ago

0.1.62

6 years ago

0.1.61

6 years ago

0.1.60

6 years ago

0.1.59

6 years ago

0.1.58

6 years ago

0.1.57

6 years ago

0.1.56

6 years ago

0.1.55

6 years ago

0.1.54

6 years ago

0.1.53

6 years ago

0.1.52

6 years ago

0.1.51

6 years ago

0.1.50

6 years ago

0.1.49

6 years ago

0.1.48

6 years ago

0.1.47

6 years ago

0.1.45

6 years ago

0.1.44

6 years ago

0.1.42

6 years ago

0.1.41

6 years ago

0.1.40

6 years ago

0.1.38

6 years ago

0.1.37

6 years ago

0.1.36

6 years ago

0.1.35

6 years ago

0.1.34

7 years ago

0.1.33

7 years ago

0.1.32

7 years ago

0.1.31

7 years ago

0.1.30

7 years ago

0.1.29

7 years ago

0.1.28

7 years ago

0.1.27

7 years ago

0.1.26

7 years ago

0.1.25

7 years ago

0.1.24

7 years ago

0.1.23

7 years ago

0.1.22

7 years ago

0.1.21

7 years ago

0.1.20

7 years ago

0.1.19

7 years ago

0.1.18

7 years ago

0.1.17

7 years ago

0.1.16

7 years ago

0.1.15

7 years ago

0.1.14

7 years ago

0.1.13

7 years ago

0.1.12

7 years ago

0.1.11

7 years ago

0.1.10

7 years ago

0.1.9

7 years ago

0.1.8

7 years ago

0.1.7

7 years ago

0.1.6

7 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago