• Stars
    star
    278
  • Rank 148,454 (Top 3 %)
  • Language
    TypeScript
  • Created almost 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

πŸ‘“ Advanced example of using pg-promise

pg-promise-demo

This is an advanced demo of the best practices of using pg-promise, and managing your database architecture.

It shows how to organize an enterprise-level database application, with consideration for ever-growing complexity of the database and queries.

The demo focuses on the following:

  • The best way to organize your database module
  • Use of the Repository pattern for your database
  • Efficient use of queries via external SQL files
  • Query monitoring and error diagnostics

The demo includes two separate implementations, with identical functionality:

Each uses a basic HTTP service to let you quickly test db calls in a browser. Do not however reuse any of the HTTP-service code, it is over-simplified, for the test, not for you to copy. The demo focus is on the database layer only.

Installing & Running

You can either clone it or install via $ npm install pg-promise-demo.

This demo is here mostly for you to browse through its source code, understand its structure and the overall approach. It is also simple enough that running it isn't really necessary.

However, if you do want to run this application locally, you need to build and and run it according to the type of implementation that you are interested in. See details on the corresponding pages: JavaScript or TypeScript.

Once the application is up and running, you can fire away URL commands in a browser, as per the web API that's implemented, while watching what's happening in:

  • the console output (make sure you have NODE_ENV=development)
  • errors log - file db/errors.log

The application implements two tables: users->products as one-to-many. Once the app is running, you should create and populate those as the very first commands:

/users/create
/users/init
/products/create

After that see other supported API commands in the code:

/users/empty
/users/drop
/users/find/:id
/users/remove/:id
/users/all
/users/total

/products/drop
/products/empty
/products/add/:userId/:name
/products/find/:userId/:name
/products/remove/:id
/products/all
/products/total

More Repositories

1

pg-promise

PostgreSQL interface for Node.js
JavaScript
3,356
star
2

pg-monitor

πŸ’» Events monitor for pg-promise
JavaScript
145
star
3

iter-ops

Basic operations on iterables
TypeScript
136
star
4

connection-string

Advanced URL Connection String
TypeScript
73
star
5

decomment

πŸ”¨ Removes comments from JSON, JavaScript, CSS, HTML, etc.
JavaScript
68
star
6

excellent

Basic DOM Component Framework
JavaScript
56
star
7

spex

πŸ’‘ Specialized Promise Extensions
JavaScript
51
star
8

pg-minify

Minifies PostgreSQL scripts.
JavaScript
45
star
9

sub-events

Lightweight, strongly-typed events, with monitored subscriptions.
TypeScript
36
star
10

manakin

🐦 Prime colors for your Node.js console β€” quick & safe.
JavaScript
29
star
11

path-value

Property path-to-value resolver, in TypeScript.
TypeScript
12
star
12

gulp-decomment

🍸 Removes comments from JSON, JavaScript, CSS, HTML, etc.
HTML
12
star
13

prime-lib

Prime number library.
TypeScript
10
star
14

pg-tuple

Tuples parser for PostgreSQL
JavaScript
7
star
15

pg-iterator

TypeScript
6
star
16

iter-ops-extras

Custom operators for iter-ops
TypeScript
5
star
17

assert-options

Generic options parameter handling
TypeScript
4
star
18

flex-value

Strongly-typed, value-resolution handler.
TypeScript
4
star
19

pg-core

PostgreSQL Core Driver for NodeJS.
TypeScript
3
star
20

pg-listener

Reliable notification listener for PostgreSQL
JavaScript
3
star
21

subcount

Observable events with monitored subscriptions.
TypeScript
3
star
22

docref

Code documentation by reference
JavaScript
2
star
23

nitrous

Performance Promise Library
JavaScript
2
star
24

connection-string-demo

Advanced use-case for connection-string
JavaScript
2
star
25

grunt-file-wrap

🐷 Inject a header + footer into your text files automatically.
JavaScript
2
star
26

vparse

The smallest version parser, for client + server.
JavaScript
2
star
27

db-types

Universal database types mapper
JavaScript
2
star
28

grunt-decomment

🐷 Removes comments from JSON, JavaScript, CSS, HTML, etc.
JavaScript
2
star
29

signal-ext

Angular Signal Extension
TypeScript
1
star
30

what

1
star
31

text-wrap

Fast and safe way to wrap your text with a header + footer.
JavaScript
1
star