Generating an app
In the getting started chapter we created a Feathers application in a single file to get a better understanding how Feathers itself works. The Feathers CLI allows us to initialize a new Feathers server with a recommended structure and helps with generating things we commonly need like authentication, a database connection, new services or hooks (more about hooks in a little bit). It can be installed via:
npm install @feathersjs/cli -g
Important: As mentioned when getting ready,
@feathersjs/clialso requires Node version 10 or later. If you already have it installed,
feathers --versionshould show
Generating the application
Let's create a new directory for our app and in it, generate a new application:
$ mkdir feathers-chat $ cd feathers-chat/ $ feathers generate app
Once you confirm the last prompt, the final selection should look like this:
The generated files
Let's have a brief look at the files that have been generated:
The most important pattern used in the generated application to split things up into individual files are configure functions which are functions that are exported from a file and take the Feathers app object and then use it to e.g. register services. Those functions are then passed to app.configure.
For example, have a look at the following files:
This is how the generator splits things up into separate files and any documentation example that uses the
app object can be used in a configure function. You can create your own files that export a configure function and
app.configure them in
Note: Keep in mind that the order in which configure functions are called might matter, e.g. if it is using a service, that service has to be registered first.
Running the server and tests
The server can now be started by running
After that, you can see a welcome page at localhost:3030.
The app also comes with a set of basic tests which can be run with
There is also a handy development command that restarts the server automatically whenever we make a code change:
npm run dev
You can keep this command running throughout the rest of this guide, it will reload all our changes automatically.
In this chapter we installed the Feathers CLI, scaffolded a new Feathers application and learned how it splits things up into separate files. In the next chapter we will learn more about Feathers services and databases.