You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

fastify-mongoose-driver

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fastify-mongoose-driver

A Fastify plugin to connect to a MongoDB instance via the Mongoose ODM

1.0.2
Source
npmnpm
Version published
Weekly downloads
13
-50%
Maintainers
1
Weekly downloads
 
Created
Source

Fastify MongoDB Plugin using Mongoose ODM

NPM

CircleCI

Installation

npm i fastify-mongoose-driver -s

Usage

// ...Other Plugins
fastify.register(
  require("fastify-mongoose-driver"),
  {
    uri: "mongodb://admin:pass@localhost:27017/database_name",
    settings: {
      useNewUrlParser: true,
      config: {
        autoIndex: true
      }
    },
    models: [
      {
        name: "posts",
        alias: "Post",
        schema: {
          title: {
            type: String,
            required: true
          },
          content: {
            type: String,
            required: true
          }
        }
      },
      {
        name: "accounts",
        alias: "Account",
        schema: {
          username: {
            type: String
          },
          password: {
            type: String,
            select: false,
            required: true
          },
          email: {
            type: String,
            unique: true,
            required: true,
            validate: {
              validator: v => {
                // Super simple email regex: https://stackoverflow.com/a/4964763/7028187
                return /^.+@.{2,}\..{2,}$/.test(v);
              },
              message: props => `${props.value} is not a valid email!`
            }
          },
          // We can add references to other Schemas like-so
          posts: [
            {
              type: "ObjectId",
              ref: "Post",
              validateExistance: true
            }
          ],
          createdAtUTC: {
            type: Date,
            required: true
          }
        }
      }
    ],
    useNameAndAlias: true
  },
  err => {
    if (err) throw err;
  }
);

fastify.get("/", (request, reply) => {
  console.log(fastify.mongoose.instance); // Mongoose ODM instance
  console.log(fastify.mongoose.Account); // Any models declared are available here
});

Options

OptionDescription
uriRequired, the Unique Resource Identifier to use when connecting to the Database.
settingsOptional, the settings to be passed on to the MongoDB Driver as well as the Mongoose-specific options. Refer here for further info.
modelsOptional, any models to be declared and injected under fastify.mongoose
useNameAndAliasOptional, declares models using mongoose.model(alias, schema, name) instead of mongoose.model(name, schema)

Any models declared should follow the following format:

{
  name: "profiles", // Required, should match name of model in database
  alias: "Profile", // Optional, an alias to inject the model as
  schema: schemaDefinition // Required, should match schema of model in database
}

The schemaDefinition variable should be created according to the Mongoose Model Specification.

Keep in mind that, if an "ObjectId" is specified as the type, the referenced Schema must have been defined first in the models input array of the library.

Author

Alex Papageorgiou

License

Licensed under GPLv3.

Keywords

fastify

FAQs

Package last updated on 27 Feb 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts