惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园_首页
雷峰网
雷峰网
IT之家
IT之家
I
InfoQ
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
B
Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
Hugging Face - Blog
Hugging Face - Blog
A
About on SuperTechFans
月光博客
月光博客
P
Proofpoint News Feed
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
G
Google Developers Blog
小众软件
小众软件
宝玉的分享
宝玉的分享
Jina AI
Jina AI
V
Visual Studio Blog

Supabase Blog

AI Agents Know About Supabase. They Don't Always Use It Right. Custom OIDC Providers for Supabase Auth 100,000 GitHub stars Supabase docs over SSH Navigating Regional Network Blocks Supabase Joins the Stripe Projects Developer Preview Log Drains: Now available on Pro Supabase Storage: major performance, security, and reliability updates Supabase incident on February 12, 2026 Hydra joins Supabase X / Twitter OAuth 2.0 is now available for Supabase Auth BKND joins Supabase Supabase is now an official Claude connector Supabase PrivateLink is now available Introducing: Postgres Best Practices When to use Read Replicas vs. bigger compute Introducing TRAE SOLO integration with Supabase Supabase Security Retro: 2025 Sync Stripe Data to Your Supabase Database in One Click Building ChatGPT Apps with Supabase Edge Functions and mcp-use Own Your Observability: Supabase Metrics API Introducing iceberg-js: A JavaScript Client for Apache Iceberg Introducing Supabase for Platforms Adding Async Streaming to Postgres Foreign Data Wrappers Build "Sign in with Your App" using Supabase Auth Introducing Seven New Email Templates for Supabase Auth The new Supabase power for Kiro Introducing Supabase ETL Introducing Analytics Buckets Introducing Vector Buckets
Using Supabase in Replit
Ant Wilson · 2021-03-11 · via Supabase Blog

Using Supabase in Replit

Replit.com is an awesome new browser based IDE where you can code alone or collaboratively with friends using their awesome multiplayer features! It's particularly useful for education, and sharing code examples with others.

They support a ton of different languages and execution environments and even recently introduced a simple key value store you can use to persist data.

As a Replit user, if you want to access larger amounts of data direct from your repl, or if you fancy accessing some super-powerful query tools, at some point you may want to start interacting with a relational database. Supabase is a good fit here; just like Replit, you don't need to worry about servers, and hosting, you can just click a few buttons and get a fully featured relational database which you can start communicating with directly from javacript, using supabase-js.

Here's how to start a Supabase + Node.js repl:

Sign up for replit.com and hit new repl in the top left

Select node.js, give it a name, and click Create repl

Import supabase's createClient method and hit run to install the required libs:


_10

const { createClient } = require('@supabase/supabase-js')


Setup a new Supabase project and grab the URL and anon key from Settings > API. Create the client in javascript using:


_10

const supabase = createClient(

_10

'https://ajsstlnzcmdmzbtcgbbd.supabase.co',

_10

'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'

_10

)


Now that supabase is connected you'll want to add some data to your db, you can grab any SQL dataset on the web, or make your own, but the fasted way to test is to open the SQL tab in the Supabase dashboard and click the Countries sample database and click Run.

From within your repl you can now query your countries table like:


_24

// .then() syntax

_24

supabase.

_24

.from('countries')

_24

.select('*')

_24

.limit(5)

_24

.then(console.log)

_24

.catch(console.error)

_24

_24

// or...

_24

// async/await syntax

_24

const main = async() => {

_24

const { data, error } = supabase

_24

.from('countries')

_24

.select('*')

_24

.limit(5)

_24

_24

if (error) {

_24

console.log(error)

_24

return

_24

}

_24

_24

console.log(data)

_24

}

_24

main()


Once this is working, if you want to learn more about the query interface you might want to try some of these challenges:


_10

// 1. List all the countries in Antarctica

_10

// 2. Fetch the iso3 code of the country with ID 3

_10

// 3. List the countries with 'Island' in the name

_10

// 4. Count the number of countries that start with 'Z' or 'Q'

_10

// 5. Fetch all the Countries where continents is null


There are full solutions provided in the video version of this blog, but some examples you may find useful are:


_22

// or

_22

const { data, error } = await supabase

_22

.from('cities')

_22

.select('name, country_id')

_22

.or('id.eq.20,id.eq.30')

_22

_22

// is

_22

const { data, error } = await supabase.from('cities').select('name, country_id').is('name', null)

_22

_22

// in

_22

const { data, error } = await supabase

_22

.from('cities')

_22

.select('name, country_id')

_22

.in('name', ['Rio de Janeiro', 'San Francisco'])

_22

_22

// neq (not equal to)

_22

const { data, error } = await supabase

_22

.from('cities')

_22

.select('name, country_id')

_22

.neq('name', 'The shire')

_22

_22

// full docs here: /docs/reference/javascript/filter


We look forward to showing off some more Supabase + Replit examples.

You can find my example repl here: https://repl.it/@awalias/supabase-test#index.js

Supabase has a Free Plan, head over to https://supabase.com/dashboard to get started.