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
.
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"
}
}
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) => {
// ...
});
Unit tests (and linter):
yarn test
End-to-end tests:
yarn e2e
Cohort
CohortMembership
CohortTopic
CohortTopicSettings
CohortProject
CohortPlatziCourse
(deprecated)
GraduateProfile
GraduateProfileEndorsement
GraduateProfileProject
GraduateProfileLifeSkill
(deprecated)
Topic
TopicUnit
TopicUnitPart
TopicProgress
(TBD)
User
UserActivityFeedEvent
AcademicProfileCommentEvent
AcademicProfileTagAssignedEvent
AcademicProfileTagRemovalEvent
ReviewAnswerEvent
See Laboratoria/schemas
.