Closed nbbaier closed 10 months ago
Have you set up the middleware?
This middleware is already present in the repo (and is identical except for the import to the one described here)
import { auth } from "./lib/lucia";
import type { MiddlewareResponseHandler } from "astro";
export const onRequest: MiddlewareResponseHandler = async (context, next) => {
context.locals.auth = auth.handleRequest(context);
return await next();
};
Is there a change that needs to be made there?
Can you check if the middleware runs in the first place?
Can you check if the middleware runs in the first place?
This is the complete set of traces/ errors I'm getting, it looks like there's trouble with import (I just did a fresh install of the template to make sure I was recreating the initial bug correctly)
4:50:09 PM [vite] Error when evaluating SSR module /src/lib/lucia.ts:
|- Error: Could not locate the bindings file. Tried:
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/build/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/build/Debug/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/build/Release/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/out/Debug/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/Debug/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/out/Release/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/Release/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/build/default/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/compiled/20.10.0/darwin/arm64/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/addon-build/release/install-root/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/addon-build/debug/install-root/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/addon-build/default/install-root/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/lib/binding/node-v115-darwin-arm64/better_sqlite3.node
at bindings (/Users/nicholasbaier/absent-asteroid/node_modules/bindings/bindings.js:126:9)
at new Database (/Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/lib/database.js:48:64)
at Proxy.Database (/Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/lib/database.js:11:10)
at eval (/Users/nicholasbaier/absent-asteroid/src/lib/lucia.ts:13:41)
at async instantiateModule (file:///Users/nicholasbaier/absent-asteroid/node_modules/vite/dist/node/chunks/dep-68d1a114.js:56052:9)
4:50:09 PM [vite] Error when evaluating SSR module /src/middleware.ts: failed to import "/src/lib/lucia.ts"
|- Error: Could not locate the bindings file. Tried:
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/build/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/build/Debug/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/build/Release/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/out/Debug/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/Debug/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/out/Release/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/Release/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/build/default/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/compiled/20.10.0/darwin/arm64/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/addon-build/release/install-root/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/addon-build/debug/install-root/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/addon-build/default/install-root/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/lib/binding/node-v115-darwin-arm64/better_sqlite3.node
at bindings (/Users/nicholasbaier/absent-asteroid/node_modules/bindings/bindings.js:126:9)
at new Database (/Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/lib/database.js:48:64)
at Proxy.Database (/Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/lib/database.js:11:10)
at eval (/Users/nicholasbaier/absent-asteroid/src/lib/lucia.ts:13:41)
at async instantiateModule (file:///Users/nicholasbaier/absent-asteroid/node_modules/vite/dist/node/chunks/dep-68d1a114.js:56052:9)
4:50:09 PM [vite] Error when evaluating SSR module astro-internal:middleware: failed to import "/src/middleware.ts"
|- Error: Could not locate the bindings file. Tried:
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/build/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/build/Debug/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/build/Release/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/out/Debug/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/Debug/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/out/Release/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/Release/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/build/default/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/compiled/20.10.0/darwin/arm64/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/addon-build/release/install-root/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/addon-build/debug/install-root/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/addon-build/default/install-root/better_sqlite3.node
→ /Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/lib/binding/node-v115-darwin-arm64/better_sqlite3.node
at bindings (/Users/nicholasbaier/absent-asteroid/node_modules/bindings/bindings.js:126:9)
at new Database (/Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/lib/database.js:48:64)
at Proxy.Database (/Users/nicholasbaier/absent-asteroid/node_modules/better-sqlite3/lib/database.js:11:10)
at eval (/Users/nicholasbaier/absent-asteroid/src/lib/lucia.ts:13:41)
at async instantiateModule (file:///Users/nicholasbaier/absent-asteroid/node_modules/vite/dist/node/chunks/dep-68d1a114.js:56052:9)
error Cannot read properties of undefined (reading 'validate')
File:
/Users/nicholasbaier/absent-asteroid/src/pages/index.astro:4:41
Code:
> 4 | const session = await Astro.locals.auth.validate();
| ^
5 | if (!session) return Astro.redirect("/login", 302);
6 | ---
Stacktrace:
TypeError: Cannot read properties of undefined (reading 'validate')
at /Users/nicholasbaier/absent-asteroid/src/pages/index.astro:4:41
at index (/Users/nicholasbaier/absent-asteroid/node_modules/astro/dist/runtime/server/astro-component.js:18:12)
at callComponentAsTemplateResultOrResponse (file:///Users/nicholasbaier/absent-asteroid/node_modules/astro/dist/runtime/server/render/astro/render.js:85:31)
at renderToReadableStream (file:///Users/nicholasbaier/absent-asteroid/node_modules/astro/dist/runtime/server/render/astro/render.js:35:32)
at renderPage (file:///Users/nicholasbaier/absent-asteroid/node_modules/astro/dist/runtime/server/render/page.js:29:18)
at renderPage (file:///Users/nicholasbaier/absent-asteroid/node_modules/astro/dist/core/render/core.js:56:26)
at #tryRenderRoute (file:///Users/nicholasbaier/absent-asteroid/node_modules/astro/dist/core/pipeline.js:115:24)
at DevPipeline.renderRoute (file:///Users/nicholasbaier/absent-asteroid/node_modules/astro/dist/core/pipeline.js:58:46)
at handleRoute (file:///Users/nicholasbaier/absent-asteroid/node_modules/astro/dist/vite-plugin-astro-server/route.js:229:33)
at async run (file:///Users/nicholasbaier/absent-asteroid/node_modules/astro/dist/vite-plugin-astro-server/request.js:53:14)
Looks like something's failing when importing better-sqlite3
and likely not an issue with Lucia. I'd recommend asking Astro's or better-sqlite3
community
Thanks!
Package
lucia-auth
Describe the bug
Ran into the error
Cannot read properties of undefined (reading 'validate')
when running the Astro username and password example repo. Here's the stracktraceI have made no changes to the repo and was following the guide here
Steps to reproduce
bun install
bun run dev
This error also occurs when running the repo on Stackblitz.