Skip to content

Commit d51e0d0

Browse files
Apply suggestions from code review
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1 parent 4fc3273 commit d51e0d0

File tree

1 file changed

+13
-22
lines changed

1 file changed

+13
-22
lines changed

content/800-guides/390-hono.mdx

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -42,23 +42,16 @@ To get started with Prisma, you'll need to install a few dependencies:
4242
<TabbedContent code>
4343
<TabItem value="Prisma Postgres (recommended)">
4444
```terminal
45-
npm install prisma dotenv --save-dev
46-
npm install @prisma/extension-accelerate @prisma/client
47-
```
48-
</TabItem>
49-
<TabItem value="Other databases">
50-
```terminal
51-
npm install prisma dotenv --save-dev
52-
npm install @prisma/client
53-
```
45+
npm install prisma --save-dev
46+
npm install @prisma/extension-accelerate @prisma/client dotenv
47+
48+
npm install prisma --save-dev
49+
npm install @prisma/client dotenv
5450
</TabItem>
5551
</TabbedContent>
5652
5753
Once installed, initialize Prisma in your project:
5854
59-
```terminal
60-
npx prisma init --db --output ../src/generated/prisma
61-
```
6255
:::info
6356
You'll need to answer a few questions while setting up your Prisma Postgres database. Select the region closest to your location and a memorable name for your database like "My Hono Project"
6457
:::
@@ -248,32 +241,30 @@ export default withPrisma;
248241
</TabItem>
249242

250243
<TabItem value="Other databases">
251-
```tsx file=src/lib/prisma.ts
252244
import type { Context, Next } from 'hono';
253245
import { PrismaClient } from '../generated/prisma/client.js';
254246

247+
const databaseUrl = process.env.DATABASE_URL;
248+
if (!databaseUrl) {
249+
throw new Error('DATABASE_URL is not set');
250+
}
251+
const prisma = new PrismaClient({ datasourceUrl: databaseUrl });
252+
255253
function withPrisma(c: Context, next: Next) {
256254
if (!c.get('prisma')) {
257-
const databaseUrl = process.env.DATABASE_URL;
258-
259-
if (!databaseUrl) {
260-
throw new Error('DATABASE_URL is not set');
261-
}
262-
const prisma = new PrismaClient({ datasourceUrl: databaseUrl })
263-
264255
c.set('prisma', prisma);
265256
}
266257
return next();
267258
}
259+
268260
export default withPrisma;
269-
```
270261
</TabItem>
271262
</TabbedContent>
272263

273264
:::warning
274265
We recommend using a connection pooler (like [Prisma Accelerate](https://www.prisma.io/accelerate)) to manage database connections efficiently.
275266

276-
If you choose not to use one, **avoid** instantiating `PrismaClient` globally in long-lived environments. Instead, create and dispose of the client per request to prevent exhausting your database connections.
267+
If you choose not to use one, in long-lived environments (for example, a Node.js server) instantiate a single `PrismaClient` and reuse it across requests to avoid exhausting database connections. In serverless environments or when using a pooler (for example, Accelerate), creating a client per request is acceptable.
277268
:::
278269

279270
### 3.2 Environment Variables & Types

0 commit comments

Comments
 (0)