nodewrite-core-data
v1.0.16
Published
core data for nodewrite
Downloads
5
Readme
Core Data
Handles registering plugin data models and establishing connections with the database. Provides a datastore-agnostic JavaScript ORM designed for ease of use and peace of mind. Exposes a unified data API that works on both server and client.
Installation
npm install nodewrite-core-data --save
This is a core package and is installed by default.
Usage
Provides access to data store models that have been registered by plugins.
Plugins
When developing a plugin that depends on this package:
server.dependency(['nodewrite-core-data'], register);
Learn more about how to build a plugin.
Helper Methods
server.store()
Plugin models are each assigned to their own namespace within the store. The store contains a top-level namespace for both core and plugin packages.
// Get reference to data store.
const store = server.store();
// store.Core.[Package].[Model]
const User = store.Core.Users.User;
// store.Plugin.[Package].[Model]
const Post = store.Plugin.Posts.Post;
Learn more about how to use JSData models.
server.paginate(data)
The paginate method will return a standardized pagination object when given the total number of items, items per page and current page.
data
- an object used for generating the pagination object.total
- total number of items in the data set.limit
- total number of items per page.page
- current page position.
const data = { total: 100, limit: 15, page: 3 };
const pagination = server.paginate(data);
Resulting pagination object:
{
currentPage: 3,
itemsPerPage: 15,
nextPage: 4,
previousPage: 2,
totalItems: 100,
totalPages: 7
}
server.registerPluginModels(path)
Registers plugin models with the data store. The models will be expected to be
found within the plugin's /model
directory. Registration of plugin models may
become automatic in the future.
path
- base directory of a plugin that has data models to be registered.
server.registerPluginModels(__dirname);
Getting Help
Open an issue on this repository!