I am trying to follow the instructions

I am trying to follow the instructions and set up this DB environment variable in my nextjs app but I am stuck at the very first step.
No description
5 Replies
harshil1712
harshil1712•3mo ago
The d1 package you are trying to use is deprecated. Since you are using Next.js, I am assuming that you are using Pages functions? If that's the case, maybe this doc can help: https://developers.cloudflare.com/pages/functions/bindings/#d1-databases
Cloudflare Docs
Bindings · Cloudflare Pages docs
A binding enables your Pages Functions to interact with resources on the Cloudflare developer platform. Use bindings to integrate your Pages Functions …
rampatra
rampatra•3mo ago
thanks, let me try and follow the steps mentioned here. This page does talk about bindings and shares basic typescript code for interacting with the database, however, it doesn't share any info about the use of d1 db within a nextjs app. So, do you have some reference or doc showing this? One approach can be -- have a standalone app generated via wrangler and deploy it as a separate worker on cloudflare and have all the db logic there exposing the same as APIs. And, my nextjs app (a different worker on cloudflare) can then interact with the db via this wrangler generated standalone project. However, I will still prefer to have everything inside my one nextjs app.
harshil1712
harshil1712•3mo ago
Just saw your code snippet. You are using a deprecated library for D1. To use D1 in your Next.js app, as mentioned in the doc above, you need to add the binding to your wrangler.toml file. Then you need to add the interface, and then you can pass on the binding using the getRequestContext method from the @cloudflare/next-on-pages package. Here's the doc that should help: https://developers.cloudflare.com/pages/framework-guides/nextjs/deploy-a-nextjs-site/#add-bindings-to-typescript-projects
Cloudflare Docs
Full-stack deployment · Cloudflare Pages docs
Deploy a full-stack Next.js site (recommended).
rampatra
rampatra•3mo ago
awesome, this finally worked. Minor comment to improve the doc a bit. This doesn't say how to declare the DB type clearly. I got this error Type error: Property 'DB' does not exist on type 'CloudflareEnv' initially but I got past it eventually. Tnx for the help! Also, for previewing the app locally, the doc says to run this npx wrangler pages dev .vercel/output/static However, the normal npm run dev worked fine for me. I was able to interact with the db with no problems.
harshil1712
harshil1712•3mo ago
Glad that is working. Thank you for the feedback. Let me figure out where would be the best place to make this changes 😄
Want results from more Discord servers?
Add your server