Abstracting database access

In order to connect to the database, we are going to use an abstraction layer by utilizing node-dbi. This allows us to transparently use MySQL at a later point in time, without the need to change the code that does database operations.

First, we should change our spec in order to have it expect actual database content. A request to /api/keywords/ should return a JSON structure that carries an array of objects, where each object represents a keyword with its ID, value, and the ID of its category:

[
   {"id": 1, "value": "Aubergine", "categoryID": 1},
   {"id": 2, "value": "Onion", "categoryID": 1},
   {"id": 3, "value": "Knife", "categoryID": 2}
 ]

A data structure like this would be stored in a relational database like ...

Get The Node Craftsman Book now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.