如何将HTML页面的ID值解析到Supabase查询的eq方法中?
解决URL参数传递到Supabase查询的问题
错误原因
你代码里的eq('id', ?)是SQL占位符写法,但Supabase JavaScript客户端不支持这种语法,直接写?会触发JavaScript语法错误——这不是合法的JS语法。
修复步骤
- 获取URL中的id参数:在Express路由里,通过
req.query.id可以拿到链接/Event?id=xxx中的id值。 - 传入Supabase查询:把获取到的id值直接传给
.eq()方法;如果你的events表中id是数字类型,记得把参数转成数字,避免字符串匹配失败。
修改后的路由代码
app.get('/Event', async (req, res) => { // 从URL查询参数中获取id,转成数字类型适配表结构 const eventId = Number(req.query.id); let { data, error } = await supabase .from('events') .select('*') .eq('id', eventId) // 替换为获取到的实际id值 if (error) { console.log(error) return } res.render('Event', { "event": data}); });
补充说明
你的HTML代码是正确的,已经把event.id渲染到了链接的查询参数中,不需要修改。
内容的提问来源于stack exchange,提问作者devmldg
相关产品推荐
相关产品推荐

