This tutorial shows you how build a simple Node.js application with CockroachDB and Knex.js.
Step 1. Start CockroachDB
Create a free cluster
Organizations without billing information on file can only create one CockroachDB Basic cluster.
- If you haven't already, sign up for a CockroachDB Cloud account.
- Log in to your CockroachDB Cloud account.
- On the Clusters page, click Create cluster.
- On the Select a plan page, select Basic.
- On the Cloud & Regions page, select a cloud provider (GCP or AWS) in the Cloud provider section.
- In the Regions section, select a region for the cluster. Refer to CockroachDB Cloud Regions for the regions where CockroachDB Basic clusters can be deployed. To create a multi-region cluster, click Add region and select additional regions.
- Click Next: Capacity.
- On the Capacity page, select Start for free. Click Next: Finalize.
- On the Finalize page, click Create cluster. - Your cluster will be created in a few seconds and the Create SQL user dialog will display. 
Set up your cluster connection
- Navigate to the cluster's Overview page, and select Connect. 
- Under the Connection String tab, download the cluster certificate. 
- Take note of the connection string provided. You'll use it to connect to the database later in this tutorial. 
- If you haven't already, download the CockroachDB binary.
- Run the - cockroach start-single-nodecommand:- $ cockroach start-single-node --advertise-addr 'localhost' --insecure- This starts an insecure, single-node cluster. 
- Take note of the following connection information in the SQL shell welcome text: - CockroachDB node starting at 2021-08-30 17:25:30.06524 +0000 UTC (took 4.3s) build: CCL v21.1.6 @ 2021/07/20 15:33:43 (go1.15.11) webui: http://localhost:8080 sql: postgresql://root@localhost:26257?sslmode=disable- You'll use the - sqlconnection string to connect to the cluster later in this tutorial.
The --insecure flag used in this tutorial is intended for non-production testing only. To run CockroachDB in production, use a secure cluster instead.
Step 2. Get the code
Clone the code's GitHub repo:
$ git clone https://github.com/cockroachlabs/example-app-node-knex
Step 3. Run the code
To start the app:
- Set the - DATABASE_URLenvironment variable to the connection string:- $ export DATABASE_URL="postgresql://root@localhost:26257?sslmode=disable"- $ export DATABASE_URL="<connection-string>"- Where - <connection-string>is the connection string you obtained from the CockroachDB Cloud Console.- The app uses the connection string saved to the - DATABASE_URLenvironment variable to connect to your cluster and execute the code.
- Install the app requirements: - $ npm install
- Run the app: - $ npm run run- The output should look like this: - Initializing accounts table... New account balances: { id: 'bc0f7136-7103-4dc4-88fc-102d5bbd312f', balance: '1000' } { id: '35bde7d0-29c9-4277-a117-3eb80c85ae16', balance: '250' } { id: '18cc1b2d-be61-4a8d-942c-480f5a6bc207', balance: '0' } Transferring funds... New account balances: { id: 'bc0f7136-7103-4dc4-88fc-102d5bbd312f', balance: '900' } { id: '35bde7d0-29c9-4277-a117-3eb80c85ae16', balance: '350' } { id: '18cc1b2d-be61-4a8d-942c-480f5a6bc207', balance: '0' } Deleting a row... New account balances: { id: 'bc0f7136-7103-4dc4-88fc-102d5bbd312f', balance: '900' } { id: '18cc1b2d-be61-4a8d-942c-480f5a6bc207', balance: '0' }
What's next?
You might also be interested in the following pages: