Connect node-postgres to a PostgreSQL-dialect database
Stay organized with collections
Save and categorize content based on your preferences.
This page explains how to connect the PostgreSQL node-postgres driver to a
PostgreSQL-dialect database in Spanner. node-postgres is a Node.js
driver for PostgreSQL.
Verify that PGAdapter is running on the same machine as the
application that is connecting using the PostgreSQL node-postgres driver.
Specify the database server host and port in the
node-postgres connection properties:
const{Client}=require('pg');constclient=newClient({host:'APPLICATION_HOST',port:PORT,database:'DATABASE_NAME',});awaitclient.connect();constres=awaitclient.query("select 'Hello world!' as hello");console.log(res.rows[0].hello);awaitclient.end();
Replace the following:
APPLICATION_HOST: the hostname or IP address of
the machine where PGAdapter is running. If running locally, you
can use localhost.
PORT: the port number where PGAdapter is
running. Change this in the connection string if PGAdapter is
running on a custom port. Otherwise, use the default port, 5432.
Unix domain sockets
This section explains how to use Unix domain sockets to connect a
PostgreSQL node-postgres driver to a PostgreSQL-dialect database. Use Unix domain socket
connections when you need to have the lowest possible latency.
To use Unix domain sockets, PGAdapter must be running on the
same host as the client application.
constclient=newClient({host:'/tmp',port:PORT,database:'DATABASE_NAME',});awaitclient.connect();constres=awaitclient.query("select 'Hello world!' as hello");console.log(res.rows[0].hello);awaitclient.end();
Replace the following:
/tmp: the default domain socket directory for
PGAdapter. This can be changed using the -dir command line
argument.
PORT: the port number where PGAdapter is
running. Change this in the connection string if PGAdapter is running
on a custom port. Otherwise, use the default port, 5432.
For more information about PostgreSQL node-postgres driver connection
options, see node-postgres Connection
Options
in the PGAdapter GitHub repository.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Connect node-postgres to a PostgreSQL-dialect database\n\nThis page explains how to connect the PostgreSQL node-postgres driver to a\nPostgreSQL-dialect database in Spanner. node-postgres is a Node.js\ndriver for PostgreSQL.\n\n1. Verify that PGAdapter is running on the same machine as the\n application that is connecting using the PostgreSQL node-postgres driver.\n\n For more information, see [Start PGAdapter](/spanner/docs/pgadapter-start).\n2. Specify the database server host and port in the\n `node-postgres` connection properties:\n\n const { Client } = require('pg');\n const client = new Client({\n host: '\u003cvar translate=\"no\"\u003eAPPLICATION_HOST\u003c/var\u003e',\n port: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-kt\"\u003ePORT\u003c/span\u003e\u003c/var\u003e,\n database: '\u003cvar translate=\"no\"\u003eDATABASE_NAME\u003c/var\u003e',\n });\n await client.connect();\n const res = await client.query(\"select 'Hello world!' as hello\");\n console.log(res.rows[0].hello);\n await client.end();\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eAPPLICATION_HOST\u003c/var\u003e: the hostname or IP address of the machine where PGAdapter is running. If running locally, you can use `localhost`.\n - \u003cvar translate=\"no\"\u003ePORT\u003c/var\u003e: the port number where PGAdapter is running. Change this in the connection string if PGAdapter is running on a custom port. Otherwise, use the default port, `5432`.\n\nUnix domain sockets\n-------------------\n\nThis section explains how to use Unix domain sockets to connect a\nPostgreSQL node-postgres driver to a PostgreSQL-dialect database. Use Unix domain socket\nconnections when you need to have the lowest possible latency.\n\nTo use Unix domain sockets, PGAdapter must be running on the\nsame host as the client application. \n\n const client = new Client({\n host: '\u003cvar translate=\"no\"\u003e/tmp\u003c/var\u003e',\n port: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-kt\"\u003ePORT\u003c/span\u003e\u003c/var\u003e,\n database: '\u003cvar translate=\"no\"\u003eDATABASE_NAME\u003c/var\u003e',\n });\n await client.connect();\n const res = await client.query(\"select 'Hello world!' as hello\");\n console.log(res.rows[0].hello);\n await client.end();\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003e/tmp\u003c/var\u003e: the default domain socket directory for PGAdapter. This can be changed using the `-dir` command line argument.\n- \u003cvar translate=\"no\"\u003ePORT\u003c/var\u003e: the port number where PGAdapter is running. Change this in the connection string if PGAdapter is running on a custom port. Otherwise, use the default port, `5432`.\n\nWhat's next\n-----------\n\n- Learn more about [PGAdapter](/spanner/docs/pgadapter).\n- For more information about PostgreSQL node-postgres driver connection options, see [node-postgres Connection\n Options](https://github.com/GoogleCloudPlatform/pgadapter/blob/-/docs/node-postgres.md) in the PGAdapter GitHub repository."]]