FeathersJS is a client-side Node.JS-Framework, with your Real-Time applications and REST API in Node.JS, React.JS and your Browser will create. The Framework is based on a combination of Design Patterns, and Tools.
Many Lower-Level Node.JS Frameworks such as Express, Koa, Fastify and Hapi are suitable for almost everything – if you want to orchestrate almost everything myself, and to build. In Express, the most popular of them are developers, for example, just concepts for Routing and Handling of HTTP Requests to the Hand. This provides for freedom, but also that you have to think of the rest of the architecture itself. In Rails, there are API and clearly defined guidelines for the handling of project structure, configuration, Database Layer, authentication, Logging, Error Handling, and even Job Queues. Many Higher-Level Frameworks for Node.JS – for example, Sails or NestJS – copy the MVC structure of Rails. MVC stands for one of the components of the Model, controller and Views to existing Software architecture.
Services and Hooks as a Basis
The Design of the Feathers is based on Services and the so-called Hooks. The Service Layer you can as a common Interface that will be used by different Clients, for example, the Interface of your Web App, the command line Tool or Integration gateway – together. These Clients differ in their use, to interact, but often together with an App. Your Routes, HTTP Requests, the Controller and the Response Handler needs. The Service Layer combines the logic of the interaction in a common Interface – that means: no Routing, no Response-Handler, no HTTP Requests, no Controller, and in the end less complicated Code. Services are simple JS objects with one or more methods that can be registered as Express Middleware. Workflows rows of so-called Hooks, or Middleware are to each other-functions that can be before, after, or within the Service methods registered. Data flow and error messages are controlled by so-called Continuations – the result of a function is passed on to the next. This is one of the programming style is also a Continuation-Passing-Style, in contrast to the so-called Direct-Style, with the results after the execution of a function back to the caller will be returned. Hooks are a transport independent – it doesn’t matter if they were accessed via HTTP(S), Socket or Primus and service-agnostic, they can be used with any service. Using Hooks, for example, validation, Logging, or the sending of Notifications can be controlled. The flexibility of the logic of your application is maintained. The Good thing is, it’s easy to test and debug the Codebase in a clear and easy. Due to the Service Layer architecture, you can get your App to a REST API or Websocket Real-Time API, or protocols, such as HTTP2, or GraphQL add, without changing anything in the Code of your App.
New Authentication Mechanism
The new User-authentication in Feathers 4 provides Protocol-independent authentication strategies, which can be according to your Wish to customize. It supports multiple Login methods such as, for example, oAuth, password/Username and JSON Web Tokens.
New Homepage, and revised documentation
We don’t know the old docu – therefore, no comparison. The Feathers Guide is definitely written, understandable, and even fun. With the Tutorial your first REST API in just 15 minutes for a Chat function with REST or Websocket-API-inclusive front-end, Unit Tests, user registration, and GitHub Login, you need to allow for about two hours.
Looks promising. Who knew Feathers before, at least throw with Version 4 a look at it. Especially appealing, we find the modularity and the clear project structure, resulting from the use of the framework. Eventually, the Open-Source could be Offered solution even as an Alternative to fee-based BaaS like Firebase be considered. The current name of the donor is by the way a crow.
This could also interest you: