core data for nodewrite

Usage no npm install needed!

<script type="module">
  import nodewriteCoreData from '';


Core Data

Build Status CodeClimate Coverage Status Dependency Status

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.


npm install nodewrite-core-data --save

This is a core package and is installed by default.


Provides access to data store models that have been registered by 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

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 =;

// 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.


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


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.

Getting Help

Open an issue on this repository!