Nhost 是开源 GraphQL 后端(Firebase Alternative)和开发平台。Nhost为现代后端提供构建出色数字产品所需的通用构建块。

Nhost 是 GraphQL 的开源 Firebase 替代方案,构建时考虑到以下几点:
- 开源
- GraphQL
- SQL
- 优秀的开发者体验
Nhost 由开源软件组成:
- 数据库:PostgreSQL
- 即时 GraphQL API:Hasura
- 身份验证:Hasura Auth
- 存储:Hasura 存储
- 无服务器函数:Node.js(JavaScript 和 TypeScript)
- 用于本地开发的Nhost CLI
Nhost 特点
内置Postgres 数据库
内置世界上最先进的关系数据库。
GraphQL API
Instant Realtime GraphQL API 基于您在数据库中的表和列。
实时 GraphQL API
GraphQL API 已内置订阅以实时同步数据。
Hasura
GraphQL API、基于角色的权限、Web 控制台、事件触发器、Cron 作业。
验证
使用电子邮件、魔术链接、SMS、Google、Facebook 等登录用户。
存储(使用 CDN)
让用户上传和下载图片、文档和其他文件。
无服务器函数
使用 JavaScript 和 Typescript 以无限规模运行自定义代码。
命令行界面
在开发期间使用 Nhost CLI 在本地运行完整的 Nhost 堆栈。
GitHub 集成
使用您喜欢的工作流程(`git push`)部署数据库和后端更改。
Nhost 适用于所有前端框架以及所有前端托管平台

Nhost 架构图

开始使用
选项 1:Nhost 托管平台
- 登录到Nhost。
- 创建 Nhost 应用程序。
- 完毕。
选项 2:自托管
由于 Nhost 是 100% 开源的,因此您可以自托管整个 Nhost 堆栈。查看示例docker -compose 文件以自托管 Nhost。
登录并发出 Graphql 请求
安装@nhost/nhost-js包并开始构建您的应用程序:
import { NhostClient } from '@nhost/nhost-js'
const nhost = new NhostClient({
subdomain: '<your-subdomain>',
region: '<your-region>'
})
await nhost.auth.signIn({ email: 'elon@musk.com', password: 'spaceX' })
await nhost.graphql.request(`{
users {
id
displayName
email
}
}`)数据库
每个 Nhost 项目都有自己的Postgres 数据库。Postgres 是世界上最先进的开源关系数据库,也是最受开发人员欢迎的 SQL 数据库。
管理数据库的三种方法:
- Nhost 数据库 UI(推荐)。
- Hasura Console。
- 直接连接到数据库。
通常,您应该public为您的项目使用架构。也可以添加自定义模式以进行更高级的使用。
这两个模式是为Nhost Authauth和Nhost Storage保留的。您可以修改权限和添加关系。但是,切勿修改任何表或删除 Nhost 在和模式中添加的关系。storageauthstorage
Postgres访问
可以使用您最喜欢的 Postgres 客户端直接访问您的 Postgres 数据库。
对于 2022 年 9 月之前的项目,无法通过连接字符串直接连接到数据库。我们正在努力进行一键式修复,预计将于 2022 年 10 月推出。
转到左侧菜单中的设置,然后单击数据库。您将找到连接到数据库的连接字符串和凭据。

重置 Postgres密码
可以重置创建项目时提供的数据库密码。
- 转到项目的概述页面。
- 单击项目设置。
- 单击重置数据库密码。
- 复制新的自动生成的密码,或键入您自己的新数据库密码。
- 单击重置数据库密码。
迁移
要跟踪数据库更改,请使用Nhost CLI在本地进行开发,并使用我们的GitHub 集成来实时自动部署数据库迁移。
- 使用 Nhost CLI 在本地开发。
- 将更改推送到 GitHub。
- Nhost 自动部署更改
资源
Nhost 库和工具
- JavaScript/TypeScript SDK
- Dart 和 Flutter SDK
- Nhost CLI
- Nhost React
- Nhost Next.js
- Nhost Vue
Nhost文档:https://docs.nhost.io
Nhost开源地址:https://github.com/nhost/nhost




