From deea6400db3674f915d7486b8a2feab5a3ef35f2 Mon Sep 17 00:00:00 2001 From: Daniele Briggi Date: Wed, 26 Feb 2025 12:00:18 +0100 Subject: [PATCH] fix(nodejs): use isConnect() --- sqlite-cloud/quick-start-next.mdx | 2 +- sqlite-cloud/quick-start-node.mdx | 44 ++++++++++++++++++++++--------- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/sqlite-cloud/quick-start-next.mdx b/sqlite-cloud/quick-start-next.mdx index 2bf623e..70b849d 100644 --- a/sqlite-cloud/quick-start-next.mdx +++ b/sqlite-cloud/quick-start-next.mdx @@ -53,7 +53,7 @@ export function DatabaseProvider({ children, config }: DatabaseProviderProps) { const dbRef = useRef(null); useEffect(() => { - if (dbRef.current) return; // Connection already exists + if (dbRef.current && dbRef.current.isConnected()) return; // Connection already exists try { dbRef.current = new Database(config.connectionString); diff --git a/sqlite-cloud/quick-start-node.mdx b/sqlite-cloud/quick-start-node.mdx index e8bb0d2..cb50f25 100644 --- a/sqlite-cloud/quick-start-node.mdx +++ b/sqlite-cloud/quick-start-node.mdx @@ -29,25 +29,43 @@ npm install express @sqlitecloud/drivers --save - Paste the following into your `index.js` file: ```javascript -const express = require('express'); -const { Database } = require('@sqlitecloud/drivers'); +const express = require("express"); +const { Database } = require("@sqlitecloud/drivers"); const app = express(); -const db = new Database(''); - -app.get('/albums', async (req, res) => { - const result = await db.sql` - USE DATABASE chinook.sqlite; - SELECT albums.AlbumId as id, albums.Title as title, artists.name as artist - FROM albums - INNER JOIN artists - WHERE artists.ArtistId = albums.ArtistId - LIMIT 20;`; +let db; + +function getDatabase() { + if (!db || !db.isConnected()) { + db = new Database("", (error) => { + if (error) { + console.log("Error during the connection", error); + } else { + console.log("Connected to the database"); + } + }); + } + + return db; +} + +app.get("/albums", async (req, res) => { + try { + const result = await getDatabase().sql(` + USE DATABASE chinook.sqlite; + SELECT albums.AlbumId as id, albums.Title as title, artists.name as artist + FROM albums + INNER JOIN artists + WHERE artists.ArtistId = albums.ArtistId + LIMIT 20;`); res.json(result); + } catch (error) { + res.status(500).json({ error: error.message }); + } }); app.listen(3000, () => { - console.log('Server running on port 3000'); + console.log("Server running on port 3000"); }); ``` 5. **Run your app**