This NPM package contains all mongoose models, schemas and types that are reused in multiple components in the system.
Adding a shared model is as simple as it gets. Imagine you have a model Potato
that you want to use in two or more components, to make it a shared model, all you do is:
- Create a file for the model
touch src/models/potato.model.ts
- Build the model
// src/models/potato.model.ts
import mongoose, { InferSchemaType } from 'mongoose';
const potatoSchema = new mongoose.Schema({
// blablabla
});
const potatoModelName = 'Potato';
const PotatoModel = mongoose.model(potatoModelName, potatoSchema);
type PotatoType = InferSchemaType<typeof potatoSchema>;
- Export the model and its inferred type
// src/models/potato.model.ts
// ... at the end of the file
export { PotatoModel, PotatoType, potatoModelName };
- Finally, export the file exports from
index.ts
// src/index.ts
// ... existing exports blablabla
export * from './models/potato.model';
To use a shared model in a NodeJS component, all you need to do is install this package and viola!
npm install @fcai-sis/shared-models
// some file in your NodeJS component codebase
import { PotatoModel } from "@fcai-sis/shared-models";
This project is under the MIT License