@feathersjs/adapter-memory
![Download Status](https://img.shields.io/npm/dm/@feathersjs/adapter-memory.svg?style=flat-square)
A Feathers service adapter for in-memory data storage that works on all platforms.
$ npm install --save @feathersjs/adapter-memory
Important: @feathersjs/adapter-memory
implements the Feathers Common database adapter API and querying syntax.
API
service([options])
Returns a new service instance initialized with the given options.
const service = require('@feathersjs/adapter-memory');
app.use('/messages', service());
app.use('/messages', service({ id, startId, store, events, paginate }));
Options:
id
(optional, default: 'id'
) - The name of the id field property.startId
(optional, default: 0
) - An id number to start with that will be incremented for every new record (unless it is already set).store
(optional) - An object with id to item assignments to pre-initialize the data storeevents
(optional) - A list of custom service events sent by this servicepaginate
(optional) - A pagination object containing a default
and max
page sizewhitelist
(optional) - A list of additional query parameters to allowmulti
(optional) - Allow create
with arrays and update
and remove
with id
null
to change multiple items. Can be true
for all methods or an array of allowed methods (e.g. [ 'remove', 'create' ]
)
Example
Here is an example of a Feathers server with a messages
in-memory service that supports pagination:
$ npm install @feathersjs/feathers @feathersjs/express @feathersjs/socketio @feathersjs/errors @feathersjs/adapter-memory
In app.js
:
const feathers = require('@feathersjs/feathers');
const express = require('@feathersjs/express');
const socketio = require('@feathersjs/socketio');
const memory = require('@feathersjs/adapter-memory');
const app = express(feathers());
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.configure(express.rest());
app.configure(socketio());
app.use('/messages', memory({
paginate: {
default: 2,
max: 4
}
}));
app.use(express.errorHandler());
app.service('messages').create({
text: 'Message created on server'
}).then(message => console.log('Created message', message));
const port = 3030;
app.listen(port, () => {
console.log(`Feathers server listening on port ${port}`)
});
Run the example with node app
and go to localhost:3030/messages.
License
Copyright (c) 2021 Feathers contributors
Licensed under the MIT license.