@ifit/mongoose-clean

1.1.0 • Public • Published

Purpose

A plugin for Mongoose to normalize JSON output, as well as Object output. Based on mongoose-to-json

Contributing

See CONTRIBUTING.md

Usage

Setup as a global plugin for all Mongoose schema's:

const mongoose = require("mongoose");
const clean = require("@ifit/mongoose-clean");

mongoose.plugin(clean);

Or for a specific (sub) schema:

const mongoose = require("mongoose");
const clean = require("@ifit/mongoose-clean");
const { Schema } = mongoose;

const MySchema = new Schema({});
MySchema.plugin(clean);

This plugin will normalize JSON output for client side applications from:

{
  "_id": "400e8324a71d4410b9dc3980b5f8cdea",
  "__v": 2,
  "name": "Item A"
}

To a cleaner:

{
  "id": "400e8324a71d4410b9dc3980b5f8cdea",
  "name": "Item A"
}

You can also remove private paths from the JSON:

const mongoose = require("mongoose");
const toJson = require("@ifit/mongoose-clean");
const { Schema } = mongoose;

const schema = new Schema({
  email: { type: String },
  password: { type: String, private: true }
});

schema.plugin(toJson);

const User = mongoose.model("users", schema);
const user = new User({ email: "test@test.com", password: "test" });

console.log(user.toJSON());

This will output:

{
  "id": "400e8324a71d4410b9dc3980b5f8cdea",
  "email": "test@test.com"
}

Readme

Keywords

none

Package Sidebar

Install

npm i @ifit/mongoose-clean

Weekly Downloads

40

Version

1.1.0

License

ISC

Unpacked Size

4.71 kB

Total Files

6

Last publish

Collaborators

  • vladpanchuk
  • talleman-ifit
  • bikersteveifit
  • yevhen.mikitin
  • damiengallagher
  • elainedev
  • abderrahim_hellaci
  • bkifit
  • bryan.may
  • faheem.bhuj
  • caleb.berman
  • andrii.pruchai
  • davidrodriguez085
  • williamt-ifit
  • devon-conn
  • mikelundinifit
  • bao.luong
  • taha-khan-abdalli
  • igor_novikov
  • zhongwei1208
  • ifit.perassi
  • haseebifit
  • tomwileyifit
  • tanzeel.rehman.19901223
  • niall-mahford
  • lamini
  • jamesmerrill
  • jkingifit
  • shashank_ifit
  • mahjongg
  • peter.ifit.com
  • jandersen
  • junchaoz
  • aaronl
  • cbrammer
  • michelle.bowser
  • robertleeplummerjr
  • mojojoejoe
  • ifitshared
  • rkaneda9
  • joekuhn
  • mark-archer
  • tdfacer
  • joshifit
  • yodafred
  • jonb-ifit
  • sm-npm
  • weaster-ifit
  • wesleyf
  • donj
  • phild
  • dawsontoth
  • michaelh-ifit
  • matthewpthomas
  • 32graham
  • jcalmonte
  • jeffy-ifit
  • xbladex
  • timtifit
  • melissawirtz
  • khaifit
  • jackswan
  • mcurcio
  • scottstav
  • emiifont
  • brandonifit
  • ericventor
  • talleman