# NodeJS

## Module Introduction

### Learning Objectives

* Define what an API is used for
* Use `npm` to start a node server
* Explain what `express` is and what it is used for
* Use `express` to create an API that will accept a `GET` request that returns JSON
* Implement routing to return different resources depending on URL
* Implement query params to return different content (?query=ses)
* Define what each part of CRUD is and what it does
* Process a GET request using Express and Node to retrieve data from memory
* Process a POST request using Express and Node and store data in memory
* Process a DELETE request using Express and Node to remove data from memory
* Install a third party library using `npm`
* Introduce Express Middleware and why it is used.
* Implement Authentication using JSON web tokens or OAuth 2.0 Authentication framework.

## Lessons

{% content-ref url="node/1-node-and-express-101" %}
[1-node-and-express-101](https://volunteers.migracode.org/coding-course/class-information/teaching-instructions/node/1-node-and-express-101)
{% endcontent-ref %}

{% content-ref url="node/2-apis-in-node" %}
[2-apis-in-node](https://volunteers.migracode.org/coding-course/class-information/teaching-instructions/node/2-apis-in-node)
{% endcontent-ref %}

{% content-ref url="node/3-workshop" %}
[3-workshop](https://volunteers.migracode.org/coding-course/class-information/teaching-instructions/node/3-workshop)
{% endcontent-ref %}

##
