UNPKG

node-mongoose-fixtures

Version:
155 lines (105 loc) 4.42 kB
node-mongoose-fixtures ====================== [![Build Status](https://travis-ci.org/kennethklee/node-mongoose-fixtures.svg?branch=master)](https://travis-ci.org/kennethklee/node-mongoose-fixtures) [![Code Climate](https://codeclimate.com/github/kennethklee/node-mongoose-fixtures.png)](https://codeclimate.com/github/kennethklee/node-mongoose-fixtures) Create mongoose fixtures from a dataset. This will iteratively insert records through mongoose. install ------- `npm install node-mongoose-fixtures` usage ----- ```javascript var fixtures = require('node-mongoose-fixtures'); fixtures({ <table name>: [ <record>, <record> ], <table name>: [ <record>, <record> ] }); ``` examples -------- ```javascript var mongoose = require('mongoose'), Schema = mongoose.Schema, fixtures = require('node-mongoose-fixtures'); // User var userSchema = new Schema({ username: String, password: String }); mongoose.model('users', userSchema); // Book var bookSchema = new Schema({ title: String }); mongoose.model('books', bookSchema); // Create dataset immediately fixtures({ users: [ {username: 'one', password: 'pass'}, {username: 'two', password: 'pass'} ], books: [ {title: 'Enders Game'}, {title: 'Speaker of the Dead'} ] }, function(err, data) { // data is an array of all the documents created }); // Name a dataset for future use fixtures.save('users', { users: [ {username: 'one', password: 'pass'}, {username: 'two', password: 'pass'} ] }); // Use the named dataset fixtures('users', function(err, data) { // Again, data is an array of all documents created }); ``` api --- ### Create Dataset `fixtures(dataset, <mongoose instance>, <callback>);` Immediately creates the documents from the dataset through the mongoose connection. * `dataset` can be a hash or a name of a named fixture. * `mongoose instance` is optional and is a singular instance of mongoose. * `callback` is an optional function when the action is complete. It's parameters are callback(error, data documents). Both arguments are arrays. The data documents are mongoose documents from the fixture data. ### Save a Named Fixture `fixtures.save(name, dataset, <callback>);` Save a fixture to be used for later. * `name` is the name of your new named fixture. * `dataset` is the hash of the dataset you want to save. * `callback` is an optional function when the action is complete. It's parameters are callback(err, old fixtures). The old fixtures are what you've overwritten. ### Retrieve a Named Fixture's Dataset `fixtures.get(name, <callback>);` Retrieves a named fixture's dataset. If callback is omitted, this will simply return the named fixture's dataset. * `name` is the name of the named fixture you wish to retrieve. * `callback` is an optional function when the action is complete. It's parameters are callback(err, dataset). ### Clear Named Fixture `fixtures.clear(<name>, <callback>);` Clears named fixtures. * `name` is optional. It's the name of the named fixture. If omitted, all named fixtures will be cleared. * `callback` is an optional function when the action is complete. It has no parameters. ### Reset Database Collection(s) `fixtures.reset(<model name>, <mongoose instance>, <callback>);` Deletes all documents within a collection. * `model name` is optional. It's the name of the collection. If omitted, all collections will be purged. * `mongoose instance` is optional and is a singular instance of mongoose. * `callback` is an optional function when the action is complete. It's parameters are the same as the callback from `mongoose.Model.remove()` support ------- Donations are welcome to help support the continuous development of this project. [![Flattr][flattr-image]][flattr-url] [![Bitcoin][bitcoin-image]][bitcoin-url] [flattr-url]: https://flattr.com/submit/auto?user_id=kennethkl&url=https://github.com/kennethklee/node-mongoose-fixtures&title=node-mongoose-fixtures&language=&tags=github&category=software [flattr-image]: http://img.shields.io/badge/flattr-donate-green.svg?style=flat-square [bitcoin-image]: http://img.shields.io/badge/bitcoin-1L9EhwhiSTPtEoXeGDBABRXmEJwovwkWpk-green.svg?style=flat-square [bitcoin-url]: https://www.coinbase.com/checkouts/5653371de64aa773f372a1e33c569095?name=node-mongoose-fixtures