1.0.5 • Published 9 months ago

slug-mongoose v1.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

slug-mongoose

slug-mongoose is a versatile npm package that simplifies the process of adding slug functionality to your Mongoose schemas. This package seamlessly integrates with Mongoose models, enabling you to automatically generate slugs based on specified fields while ensuring their uniqueness. By effortlessly handling slug creation and management, slug-mongoose streamlines URL-friendly naming for your MongoDB documents, enhancing the readability and searchability of your applications.

Installation

To get started, install the slug-mongoose package via npm:

npm install slug-mongoose

Usage

To use slug-mongoose, import the package:

const slugMongoose = require("slug-mongoose");

Apply the slug-mongoose plugin to your Mongoose schema:

const mongoose = require("mongoose");

const schema = new mongoose.Schema({
  title: String, // Example field to generate slug from
});

schema.plugin(slugMongoose, {
  field: "title", // Field to generate the slug from
  slugField: "slug", // Field to store the generated slug
});

const Model = mongoose.model("Model", schema);

When you create and save documents using the Model, the slug field will be automatically generated:

const instance = new Model({ title: "Sample Title" });
instance.save();

/**
 * Object Created
 * {
 *      "_id": "64dba901cced64bf4a950e50",
 *      "title": "Sample Title",
 *      "slug": "sample-title",
 *      "__v": 0
 * }
 */

Retrieve documents using the generated slug:

const foundInstance = await Model.findBySlug("sample-title");

Options

The slug-mongoose plugin accepts the following options:

  • field: The field to generate the slug from (default: "name").
  • slugField: The field to store the generated slug (default: "slug").

Compatibility

slug-mongoose supports both CommonJS and ES Modules environments and latest mongoose versions, making it easy to integrate with your projects.

License

This project is licensed under the MIT License.

Issues and Contributions

If you encounter any issues or have suggestions for improvements, please feel free to open an issue on the GitHub repository. Contributions are also welcome!

1.0.5

9 months ago

1.0.4

9 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago