Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/weisjohn/mongoose-simple-fixtures
provide initial data for mongoose models
https://github.com/weisjohn/mongoose-simple-fixtures
Last synced: about 1 month ago
JSON representation
provide initial data for mongoose models
- Host: GitHub
- URL: https://github.com/weisjohn/mongoose-simple-fixtures
- Owner: weisjohn
- Created: 2013-12-20T02:54:26.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2016-03-17T20:41:36.000Z (almost 9 years ago)
- Last Synced: 2024-11-11T09:47:01.452Z (about 1 month ago)
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/mongoose-simple-fixtures
- Size: 16.6 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# mongoose-simple-fixtures
provide initial data for mongoose models
### usage
```javascript
// mongoose is connection and models are already registered
var path = require('path')
, msf = require('mongoose-simple-fixtures')
, dir = path.resolve(__dirname, "./fixtures")
;msf(dir, function(err, results) {
if (err) console.log("loading data failed");
});
```### api
#### `msf([mongoose], directory, [validate], [callback])`
- `mongoose` - optional reference to mongoose
- `directory` - the path to the data, i.e. `./fixtures`
- `validate` - optional boolean to disable schema validation (default: `null`)
- `callback` - optional `function(err, results) {}``callback` receives a `results` array. Each object in the array has a `name` property with the name of the model and three values, `added`, `failed`, and `skipped`, indicating the number of documents in that collection that were saved, failed to save, or already exist. (`mongoose-simple-fixtures` will not add duplicate data by attempting to find a record before the insertion.) The `records` inserted are also returned.
`validate` indicates whether schema validation should occur before inserting. For example, object reference validators which ensure the referenced document exists may prevent data from being loaded (i.e. cylical dependencies). To prevent this, invoke with the value of `false` to temporarily suspend the validators. After loading the data, the schema validation will be set to it's previous value. If no value is specified, `mongoose-prime` will not modify the model's validation settings. (cf. [`#validateBeforeSave`](http://mongoosejs.com/docs/guide.html#validateBeforeSave))
### setup
`mongoose-simple-fixtures` supports simple JSON files as well as [extended-JSON](http://docs.mongodb.org/manual/reference/mongodb-extended-json/)
files, the sort that [`mongoexport`](http://docs.mongodb.org/v2.2/reference/mongoexport/) generates.Each filename in the `directory` must correspond to the model name in mongoose. For example, if you used the directory `fixtures` and it contained two files:
```bash
$ ls fixtures/
templates.json users.json
```then `mongoose-simple-fixtures` would look for two models on the mongoose reference called `templates` and `users`. If those models do not exist, the data loading will fail. Any files not ending in `.json` are skipped.
### extra
`mongoose-simple-fixtures` utilizes [`mongoose-prime`](https://github.com/weisjohn/mongoose-prime) under the hood.