1.0.0-alpha.29 • Published 4 years ago

@raulingg/models v1.0.0-alpha.29

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

Laboratoria/models

Build Status

This module is meant to be used with Node.js and expects the Node.js version of the mongoose module as an argument. If you are looking for schemas to be used in the front-end please check Laboratoria/schemas.

Installation

npm install --save Laboratoria/models

Or add it in your package.json and then npm install:

{
  "dependencies": {
    "models": "Laboratoria/models#v1.0.0-alpha.1"
  }
}

Usage

For more detailed information, please check the official mongoose docs

Creating and saving a model:

const mongoose = require('mongoose');
const { Project } = require('models')(mongoose);

const project = new Project({
  slug: 'cipher',
  repo: 'Laboratoria/curricula-js',
  path: 'projects/01-cipher',
  // ...
});

project.save()
  .then(console.log)
  .catch(console.error);

Finding models:

// Querying for all documents in collection
Project.find({}, (err, docs) => {
  if (err) {
    console.error(err);
  }
  // doc something with `docs`...
});

// Alternatively using a promise
Project.find({})
  .then(console.log)
  .catch(console.error);

Using Model.validate as a Promise:

const mongoose = require('mongoose');
const { Project } = require('models')(mongoose);

const project = new Project({
  slug: 'cipher',
  repo: 'Laboratoria/curricula-js',
  path: 'projects/01-cipher',
  // ...
});

project.validate()
  .then(() => {
    // Validation succeeded ;-)
  })
  .catch((err) => {
    // Validation failed :-(
  });

Using Model.validate with a callback:

const mongoose = require('mongoose');
const { Project } = require('models')(mongoose);

// Creating a new instance of a Model
const project = new Project({
  slug: 'cipher',
  repo: 'Laboratoria/curricula-js',
  path: 'projects/01-cipher',
  // ...
});

// Validating model instance
project.validate((err) => {
  // ...
});

Testing

Unit tests (and linter):

yarn test

End-to-end tests:

yarn e2e

Models

Application

Campuses

Cohorts

Endorsement

Graduates

Organizations

Placement

Projects

Tags

Topics

Users

Schemas

See Laboratoria/schemas.