专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

Directus 火了!无代码 SQL 数据的协作应用利器!

ins518 2025-06-08 21:50:48 技术文章 4 ℃ 0 评论

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。

什么是 Directus

The Modern Data Stack — Directus is an instant REST+GraphQL API and intuitive no-code data collaboration app for any SQL database.

Directus 是一个用于管理 SQL 数据库内容的实时 API 和应用仪表板,适用于任何 SQL 数据库的直观无代码数据协作应用程序。具有以下突出特点:

  • 开源:没有人为限制、供应商锁定或隐藏付费墙
  • REST 和 GraphQL API:立即在任何 SQL 数据库之上分层极快的 Node.js API。
  • 管理纯 SQL:适用于新的或现有的 SQL 数据库、无需迁移,支持 PostgreSQL、MySQL、SQLite、OracleDB、CockroachDB、MariaDB 和 MS-SQL。
  • 支持本地或云:本地运行、本地安装或使用自助云服务。
  • 完全可扩展:以白标方式构建,可轻松定制模块化平台。
  • 支持现代仪表板:无代码 Vue.js 应用程序对于非技术用户来说是安全且直观的,无需任何培训。

目前 Directus 在 Github 开源,有超过 26k 的 star、4k 的 fork、是一个妥妥的前端优质开源项目。

如何使用 Directus

开发者可以将 Directus 与最喜爱的框架相结合,创建灵活、快速的 Web 应用程序,包括:Next.js、Nuxt、Astro、Solid、Remix 等等。

比如下面代码用于获取数据:

import {createDirectus, rest, readItems} from '@directus/sdk';
const client = createDirectus('https://xyz.directus.app').with(rest());
const item = await client.request(
	readItems('articles', {
		fields: ['id', 'title', 'date_published', 'summary']
	})
);

下面代码用于插入数据:

import {createDirectus, rest, createItem} from '@directus/sdk';
const client = createDirectus('https://xyz.directus.app').with(rest());

const item = await client.request(
	createItem('articles', {
		title: 'Hello, world!',
		summary: 'This is my next big thing.'
	})
);

下面代码用于授权验证:

import {createDirectus, rest, createUser} from '@directus/sdk';
const client = createDirectus('https://xyz.directus.app').with(rest());

const newUser = await client.request(
	createUser({
		email: 'user@example.com',
		password: 'd1r3ctu5'
	})
);
const user = await client.login('user@example.com', 'd1r3ctu5');

实时数据获取也非常简单,比如:

import {createDirectus, realtime} from '@directus/sdk'
const client = createDirectus('https://xyz.directus.app').with(realtime({ authMode: 'public' }));

const {subscription} = await client.subscribe('messages');

for await (const item of subscription) {
	console.log(item);
}

更多关于 Directus 的用法和示例可以参考文末资料,本文不再过多展开。

参考资料

https://github.com/directus/directus

https://docs.directus.io/

https://www.youtube.com/watch?v=FVbhA1skkso

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表