feathers-skypager

1.3.2 • Public • Published

feathers-waterline

Build Status

A Waterline ORM service adapter

Installation

npm install feathers-waterline --save

Documentation

Please refer to the Feathers database adapter documentation for more details or directly at:

Complete Example

Here is an example of a Feathers server with a todos Waterline Model using the Disk store:

import feathers from 'feathers';
import rest from 'feathers-rest';
import bodyParser from 'body-parser';
import Waterline from 'waterline';
import diskAdapter from 'sails-disk';
import waterline from 'feathers-waterline';
 
const ORM = new Waterline();
const config = {
  adapters: {
    'default': diskAdapter,
    disk: diskAdapter
  },
  connections: {
    myLocalDisk: {
      adapter: 'disk'
    }
  },
  defaults: {
    migrate: 'alter'
  }
};
const Todo = Waterline.Collection.extend({
  identity: 'todo',
  schema: true,
  connection: 'myLocalDisk',
  attributes: {
    text: {
      type: 'string',
      required: true
    },
 
    complete: {
      type: 'boolean'
    }
  }
});
 
// Create a feathers instance.
const app = feathers()
  // Enable REST services
  .configure(rest())
  // Turn on JSON parser for REST services
  .use(bodyParser.json())
  // Turn on URL-encoded parser for REST services
  .use(bodyParser.urlencoded({ extended: true }));
 
module.exports = new Promise(function(resolve) {
  ORM.loadCollection(Todo);
  ORM.initialize(config, (error, data) => {
    if (error) {
      console.error(error);
    }
 
    // Create a Waterline Feathers service with a default page size of 2 items
    // and a maximum size of 4
    app.use('/todos', waterline({
      Model: data.collections.todo,
      paginate: {
        default: 2,
        max: 4
      }
    }));
 
    app.use(function(error, req, res, next){
      res.json(error);
    });
 
    // Start the server
    const server = app.listen(3030);
    server.on('listening', function() {
      console.log('Feathers Todo waterline service running on 127.0.0.1:3030');
      resolve(server);
    });
  });
});

You can run this example by using node examples/app and going to localhost:8080/todos. You should see an empty array. That's because you don't have any Todos yet but you now have full CRUD for your new todos service.

Changelog

1.1.0

  • Use internal methods instead of service methods directly

1.0.0

  • Stable release of finalized adapter

0.1.0

  • First working release. Tests still need fixing but basic functionality works.

License

Copyright (c) 2015

Licensed under the MIT license.

Package Sidebar

Install

npm i feathers-skypager

Weekly Downloads

2

Version

1.3.2

License

MIT

Last publish

Collaborators

  • soederpop