Getting ready
Alright then! Let's learn Feathers. In this section, we'll take a look at
- What we will cover in this guide
- What needs to be installed to use Feathers
- Things you should already know
What we will do
In this guide we will get a quick start at creating our first Feathers REST and real-time API, along with a website to use it from scratch. We will learn about the Feathers CLI and the core concepts of services, hooks and authentication. We'll do this by building a chat application with user signup, login (including with GitHub), and the ability to send and receive messages in real-time. It will look like this:
You can find the final version here: feathersjs/feathers-chat-ts
You can find the final version here: feathersjs/feathers-chat
Prerequisites
We will be writing code for Node.js and the browser. Let's cover the requirements.
Node.js Requirements
Feathers works with Node.js 14 and later. It will always support the currently active releases. The version we recommend using is the one shown as the latest available version on the NodeJS website.
Instead of installing Node from the website, we recommend using a version manager that works on your OS. Version managers are tools to quickly install any version of NodeJS and keep it up to date. Install a version manager that matches your system before you continue.
After successful installation, the node
and npm
commands should be available on the terminal and show a similar version number when running the following commands:
$ node --version
$ node --version
$ npm --version
$ npm --version
Important
Running NodeJS and npm should not require admin or root privileges.
Browser Requirements
Feathers also works in the browser and supports all modern browsers. The examples used in the guides work with browsers that support async/await
.
What you should know
In order to get the most out of this guide you should have experience in a few areas. First, choose the programming language you'd like to use:
Select a Programming Language
To complete this guide, you'll need
- Reasonable JavaScript experience using ES6 features like async/await
- Knowledge of TypeScript generics
- Some NodeJS experience, including its module system.
- Familiarity with HTTP, REST APIs, and websockets is also helpful but not necessary.
Feathers works standalone but also provides an integration with Koa or Express. This guide does not require any in-depth knowledge of the web framework you chose but some experience may be helpful in the future.
What's next?
All set up and good to go? Let's install Feathers and create our first app.