Building a Basic Todo List REST API in Node.js with Express


Content Negotiation

Express allows to do content-negotiation. Using response.format function, it can perform content-negotiation on the Accept HTTP header on the request object, when present.

It uses request.accepts() to select a handler for the request, based on the acceptable types ordered by their quality values. If the header is not specified, the first callback is invoked. When no match is found, the server responds with 406 “Not Acceptable”, or invokes the default callback.

(adapted from

Content Negotiation Example

Web Template - EJS

EJS is an embedded JavaScript template engine. Here are the some of the main features:

  • Control flow with <% %>
  • Escaped output with <%= %> (escape function configurable)
  • Unescaped raw output with <%- %>
  • Includes
  • Client-side support
  • Complies with the Express view system

For more information, you can visit:

To use it, it has to be installed:

npm install ejs
Exercise: Complete the Basic EJS Example

Now, we have see the main parts on how to do a todo list with Node.js, let's wrap up!

Create your playground on
This playground was created on, our hands-on, knowledge-sharing platform for developers.
Go to
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
Online Participants