Guide to the Express Application Object
Tags: webdev, programming, node, javascript
Published: 2021-01-24 22:03:27

**Check out my books on Amazon at https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62**

**Subscribe to my email list now at http://jauyeung.net/subscribe/**

The core part of an Express app is the Application object. It’s the application itself.

In this piece, we’ll look at the methods of the `app` object and what we can do with it.

* * *

app.METHOD(path, callback [, callback …])
===========================================

This method routes an HTTP request. `METHOD` is a placeholder for various routing methods that Express supports.

It takes the following arguments:

*   `path` — It can be a string or regex representing paths or patterns of paths. The default is `/`.
*   `callback` — a function to handle requests. It can be a middleware function, a series of them, array of them, or a combination of all of the above.

The following routing methods are supported by Express:

*   `checkout`
*   `copy`
*   `delete`
*   `get`
*   `head`
*   `lock`
*   `merge`
*   `mkactivity`
*   `mkcol`
*   `move`
*   `m-search`
*   `notify`
*   `options`
*   `patch`
*   `post`
*   `purge`
*   `put`
*   `report`
*   `search`
*   `subscribe`
*   `trace`
*   `unlock`
*   `unsubscribe`

All methods take the same arguments and work exactly the same way. So `app.get` and `app.unlock` are the same.

* * *

app.param([name], callback)
=============================

`app.param` adds callback triggers for route parameters. `name` is the parameter or an array of them. `callback` is a callback function.

The parameters of the callback are the request object, response object, next middleware function, the value of the parameter, and the name of the parameter in the given order.

For example, we can use it as follows:

The code above will get the `id` URL parameter when it exists with the `app.param` callback.

Then in the callback, we get `id` to `req.id` and call `next` to call our route handler in `app.get`.

Then we call `res.send(req.id);` to send the response with `req.id`, which we set earlier.

Note that `id` in `app.param` has to match `:id` with the route handlers.

We can pass in an array of parameters that we want to watch for:

Then if we make a request for `/1/foo`, we’ll get `1` and `foo` one at a time as the value of the `value` parameter.

* * *

app.path()
==========

`app.path` returns the path of mounted apps as a string.

For example, we can use it as follows:

Then we get `''` for `app.path()`, `'/foo'` for `foo.path()`, and `'/foo/bar'` for `bar.path()` since we mounted `foo` to `app` and `bar` to `foo`.

* * *

app.post(path, callback [, callback …])
=========================================

We can use the `app.post` method to handle POST requests with the given `path` by passing in a `callback` route handler.

It takes the following arguments:

*   `path` — It can be a string or regex representing paths or patterns of paths. The default is `/`.
*   `callback` — a function to handle requests. It can be a middleware function, a series of them, array of them, or a combination of all of the above.

For example, we can use it as follows:

Then when we make a POST request with a client like Postman, we should see “_POST request made_.”

* * *

app.put(path, callback [, callback …])
========================================

We can use the `app.put` method to handle PUT requests with the given `path` by passing in a `callback` route handler.

It takes the following arguments:

*   `path` — It can be a string or regex representing paths or patterns of paths. The default is `/`.
*   `callback` — a function to handle requests. It can be a middleware function, a series of them, array of them, or a combination of all of the above.

For example, we can use it as follows:

Then when we make a PUT request with a client like Postman, we should see “_PUT request made_.”

* * *

Conclusion
==========

We can intercept the parameters sent from requests with the `app.params` method.

To listen to POST requests, we can use the `app.post` method. To listen to PUT requests, we can use the `app.put` method.

`app.path` lets us get the path of mounted apps.

`app` also has a long list of methods for listening to all kinds of requests.