1.0.1 • Published 8 years ago

mongoose-behavior-sluggable v1.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
8 years ago

mongoose-behavior-sluggable

A concurrency safe mongoose plugin that populates a Mongoose Schema with a slug (that may be unique), from one or more existing properties.

MIT Licence

This plugin is based on the work of Dariusz Półtorak (https://github.com/dariuszp/mongoose-sluggable) and the concurrency safe code has been inspired by Jason Choy (https://github.com/jjwchoy/mongoose-shortid).

1.0.0

How to use?

Add plugin:

var mongooseSluggable = require('mongoose-behavior-sluggable');
MySchema.plugin(mongooseSluggable, {
  field    : 'slug',
  source   : ['firstname', 'lastname'],
  unique   : true,
  updatable: false
});

You can add any of these options :

OptionDescription
fieldName of field that will be used to store slug. Default "slug"
uniqueShould slug be unique for this collection? Default "false".
sourceName of fields that will be used to create slug. You can pass string or array of strings? Default "title".
separatorSeparator used to replace all non a-z and 0-9 characters. Default "-".
updatableIf set to "false", not empty slug will not be changed by the plugin. Default "true".
charmapSet a char map to replace unhandled characters. Default "true".
multicharmapSet a multi char map to replace unhandled characters. Default "true".

This plugin is based on the slug plugin for slug generation. You can find more about charmap and multicharmap in the slug module documentation (https://www.npmjs.com/package/slug)

About unique ! When using "unique: true", the plugin will not throw any error when slug already exists. It will append separator and an incremental number at the end.