---
title: Connect an Express application to Neon
subtitle: Set up a Neon project in seconds and connect from an Express application
enableTableOfContents: true
updatedOn: '2025-10-24T12:48:41.458Z'
---
This guide describes how to create a Neon project and connect to it from an Express application. Examples are provided for using the [Neon serverless driver](https://npmjs.com/package/@neondatabase/serverless), [node-postgres](https://www.npmjs.com/package/pg) and [Postgres.js](https://www.npmjs.com/package/postgres) clients. Use the client you prefer.
To connect to Neon from an Express application:
## Create a Neon project
If you do not have one already, create a Neon project.
1. Navigate to the [Projects](https://console.neon.tech/app/projects) page in the Neon Console.
2. Click **New Project**.
3. Specify your project settings and click **Create Project**.
## Create an Express project and add dependencies
1. Create an Express project and change to the newly created directory.
```shell
mkdir neon-express-example
cd neon-express-example
npm init -y
npm install express
```
2. Add project dependencies using one of the following commands:
```shell
npm install @neondatabase/serverless dotenv
```
```shell
npm install pg dotenv
```
```shell
npm install postgres dotenv
```
## Store your Neon credentials
Add a `.env` file to your project directory and add your Neon connection details to it. Find your database connection details by clicking the **Connect** button on your **Project Dashboard** to open the **Connect to your database** modal. Select Node.js from the **Connection string** dropdown. For more information, see [Connect from any application](/docs/connect/connect-from-any-app).
```shell shouldWrap
DATABASE_URL="postgresql://:@.neon.tech:/?sslmode=require&channel_binding=require"
```
To ensure the security of your data, never expose your Neon credentials to the browser.
## Configure the Postgres client
Add an `index.js` file to your project directory and add the following code snippet to connect to your Neon database:
```javascript
require('dotenv').config();
const express = require('express');
const { neon } = require('@neondatabase/serverless');
const app = express();
const PORT = process.env.PORT || 4242;
app.get('/', async (_, res) => {
const sql = neon(`${process.env.DATABASE_URL}`);
const response = await sql`SELECT version()`;
const { version } = response[0];
res.json({ version });
});
app.listen(PORT, () => {
console.log(`Listening to http://localhost:${PORT}`);
});
```
```javascript
require('dotenv').config();
const { Pool } = require('pg');
const express = require('express');
const app = express();
const PORT = process.env.PORT || 4242;
app.get('/', async (_, res) => {
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
});
const client = await pool.connect();
const result = await client.query('SELECT version()');
client.release();
const { version } = result.rows[0];
res.json({ version });
});
app.listen(PORT, () => {
console.log(`Listening to http://localhost:${PORT}`);
});
```
```javascript
require('dotenv').config();
const express = require('express');
const postgres = require('postgres');
const app = express();
const PORT = process.env.PORT || 4242;
app.get('/', async (_, res) => {
const sql = postgres(`${process.env.DATABASE_URL}`);
const response = await sql`SELECT version()`;
const { version } = response[0];
res.json({ version });
});
app.listen(PORT, () => {
console.log(`Listening to http://localhost:${PORT}`);
});
```
## Run index.js
Run `node index.js` to view the result on [localhost:4242](localhost:4242) as follows:
```shell
{ version: 'PostgreSQL 16.0 on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit' }
```
## Source code
You can find the source code for the application described in this guide on GitHub.
Get started with Express and Neon