This pattern is a pattern I use for all my Node projects that need PostgreSQL. I work a lot with Promises, and ended-up designing this db.js
file.
Put this file wherever you want in your app directory. Edit the connectionInfo
string and voilà!
Call the execute
method passing a callback function. Your callback function will be called with a function as first parameter which will allow you to execute SQL queries retourning Promises. Execute as much queries as you want, but don't forget to return a Promise that must be resolved once all your queries are done. After that, the database connection will be properly closed automatically.
Great. I should give it a try in a new project. You say you use a single connection within the application? In my code, I'm rather using a connection per request. Is that OK to keep a single connection for the whole server?