DT
Drizzle Team•12mo ago
barry

drizzle + postgres + express + ts, errors

https://gist.github.com/barrybtw/67c379371c3f52a61758c94474e8ebf8 In regards to the route auth_router.post("/signup", () => ...), I get this error
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at new NodeError (node:internal/errors:393:5)
at ServerResponse.setHeader (node:_http_outgoing:644:11)
at ServerResponse.header (/Users/nicolaichristensen/Dev/js_world/express-caddy/node_modules/.pnpm/[email protected]/node_modules/express/lib/response.js:794:10)
at ServerResponse.location (/Users/nicolaichristensen/Dev/js_world/express-caddy/node_modules/.pnpm/[email protected]/node_modules/express/lib/response.js:915:15)
at ServerResponse.redirect (/Users/nicolaichristensen/Dev/js_world/express-caddy/node_modules/.pnpm/[email protected]/node_modules/express/lib/response.js:953:18)
at file:///Users/nicolaichristensen/Dev/js_world/express-caddy/src/routes/auth.mts:78:19
at processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'ERR_HTTP_HEADERS_SENT'
}
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at new NodeError (node:internal/errors:393:5)
at ServerResponse.setHeader (node:_http_outgoing:644:11)
at ServerResponse.header (/Users/nicolaichristensen/Dev/js_world/express-caddy/node_modules/.pnpm/[email protected]/node_modules/express/lib/response.js:794:10)
at ServerResponse.location (/Users/nicolaichristensen/Dev/js_world/express-caddy/node_modules/.pnpm/[email protected]/node_modules/express/lib/response.js:915:15)
at ServerResponse.redirect (/Users/nicolaichristensen/Dev/js_world/express-caddy/node_modules/.pnpm/[email protected]/node_modules/express/lib/response.js:953:18)
at file:///Users/nicolaichristensen/Dev/js_world/express-caddy/src/routes/auth.mts:78:19
at processTicksAndRejections (node:internal/process/task_queues:95:5) {
code: 'ERR_HTTP_HEADERS_SENT'
}
I don't seem to be breaking that so a bit confused? And if I use a username that's already taken (username has the unique constraint) I get this error PostgresError: duplicate key value violates unique constraint "user_username_unique", and I can't import the type PostgresError as it's not exported but it's part of the types in the node modules, yet I can't import it without runtime errors. What's the standard for handling sql errors like this? SyntaxError: The requested module 'postgres' does not provide an export named 'PostgresError'
2 Replies
tzezar
tzezar•12mo ago
@barry your error is not related to drizzle, but to express. you should return res.end | res. send | res.render etc or call next() by the way, why are you sending data in headers? they should be only used for transport of the message and should not contain the semantics of the message also the parts that involve asynchronous operations should ideally be wrapped in try-catch blocks to handle any potential errors + good practice is to split router logic from controller logic in separate files auth_route.post('/signup', signupUser)
barry
barryOP•12mo ago
ahhh thx realized i needed body parser, was lazy, used headers, main focus wasnt there 🤷
Want results from more Discord servers?
Add your server