NuxtHub部署nuxt项目就是方便

大家好~我是Pub

最近一直在开发面向海外的应用,基本都是用Nuxt进行全栈开发的。从开发到部署都用了 Nuxthub,我自己用起来觉得非常方便。(我发现掘金好像还没有nuxthub的文章 )

前几天Nuxthub也更新到了0.10版本。

如果你是 Nuxt 开发者,在开发面向海外的应用,想开发全栈应用(带数据库、文件上传等),但又不想折腾复杂的后端部署、Docker 或云服务配置,NuxtHub 就是为你准备的。

1. NuxtHub 是什么?

NuxtHub 是一个 Nuxt 模块@nuxthub/core),也是一个部署和管理平台。

它的核心理念是 "Zero Configuration"(零配置) 。它将数据库 (SQL)文件存储 (Blob)键值存储 (KV)服务端缓存 等后端能力,直接集成到了 Nuxt 的运行时中。

简单来说,它让你在写 Nuxt 代码时,可以直接 import 一个数据库对象并开始查询,而无需关心底层的连接、认证或服务器维护。它底层主要利用了 Cloudflare 的边缘计算能力(Workers, D1, R2, KV),让你的应用不仅全栈,而且运行在全球边缘节点上。

2. 有什么方便的?

NuxtHub 最大的卖点就是 开发者体验 (DX) 的极致简化:

  • 开箱即用 :不需要安装 MySQL/PostgreSQL 软件,不需要配置 S3 存储桶。在本地开发时,NuxtHub 会自动在本地模拟这些服务(使用 SQLite 等技术),数据保存在项目根目录的 .data 文件夹中。
  • 像写前端一样写后端:你不需要学习复杂的后端框架。通过简单的导入语法即可操作数据库。
  • 零配置部署 :使用 npx nuxthub deploy 命令,系统会自动识别你的配置,在 Cloudflare 上为你创建对应的数据库、存储桶和 KV 空间,并发布应用。
  • 可视化管理 :直接在 Nuxt DevTools(开发工具栏)里就能看到数据库里的表、查看上传的文件、管理缓存,非常直观。

3. 有什么好处?

  1. 全栈一体化: 前端和后端逻辑在同一个项目中,共享类型(TypeScript),维护成本极低。
  2. 高性能 (Edge Computing): 你的应用不是运行在某个单一地区的服务器上,而是运行在 Cloudflare 的全球边缘网络上,用户访问速度极快。
  3. 功能丰富
    • NuxtHub Database (SQL): 基于 SQLite (Cloudflare D1),支持 Drizzle ORM,自动处理数据库迁移。
    • NuxtHub Blob: 轻松上传和存储图片、视频 (Cloudflare R2)。
    • NuxtHub KV: 高速键值对存储,适合存配置、Session 等。
    • NuxtHub Cache: 强大的服务端/API 缓存能力。
  4. 无厂商锁定风险: 虽然它目前深度集成 Cloudflare,但它是作为一个开源模块设计的,未来有潜力适配更多平台。而且本地开发完全离线可用。

4. 怎么用?

第一步:创建项目(最快上手)

直接使用官方模板初始化:

bash 复制代码
# 初始化一个 NuxtHub 项目
npx nuxi init -t hub my-hub-app
cd my-hub-app
npm install
npm run dev

第二步:在现有项目中使用

安装核心模块:

bash 复制代码
npx nuxi module add @nuxthub/core

修改 nuxt.config.ts 开启你需要的功能:

typescript 复制代码
export default defineNuxtConfig({
  modules: ['@nuxthub/core'],
  hub: {
    db: true,    // 开启 SQL 数据库
    blob: true,  // 开启文件存储
    kv: true,    // 开启键值对存储
    cache: true, // 开启缓存
  }
})

第三步:写代码(示例)

1. 数据库操作 (server/api/todos.ts)

typescript 复制代码
import { db } from 'hub:db'

export default eventHandler(async () => {
  // 直接查询数据库,拥有完整的类型提示
  const todos = await db.query.todos.findMany()
  return todos
})

2. 键值对存储 (KV)

typescript 复制代码
import { kv } from 'hub:kv'

// 存储数据
await kv.set('user:1:settings', { theme: 'dark' })
// 获取数据
const settings = await kv.get('user:1:settings')

3. 文件上传 (Blob)

typescript 复制代码
import { blob } from 'hub:blob'

export default eventHandler(async (event) => {
  // 获取上传的文件
  const form = await readFormData(event)
  const file = form.get('image') as File
  
  // 保存到 Blob 存储
  return await blob.put(file.name, file, {
    addRandomSuffix: true
  })
})

第四步:部署上线

无需去 Cloudflare 后台手动点点点,只需运行:

bash 复制代码
npx nuxthub deploy

它会自动登录、构建、并在云端配置好所有需要的数据库和存储资源。


总结 :NuxtHub 是目前 Nuxt 生态中开发全栈应用最现代、最轻量的方式,特别适合个人开发者、独立开发者。

最近写了个开源项目也是用nuxthub开发的。

如果这个项目对你有帮助:

  • Star 一下支持作者
  • 🐛 发现 Bug 欢迎提 Issue
  • 📢 分享给有需要的朋友
  • 💬 有问题可以评论区交流

🔗 GitHub: github.com/PBHAHAHA/Nu...

也可以加我微信交流:w314709923x

如果觉得有帮助,别忘了点赞 👍 收藏 ⭐ 关注 ➕ 三连哦~

相关推荐
PieroPc7 分钟前
用FastAPI 后端 和 Vue3 前端写一个博客系统 例
前端·vue·fastapi
xiaoyustudiowww17 分钟前
fetch异步简单版本(Tomcat 9)
java·前端·tomcat
TOPGUS17 分钟前
谷歌Chrome浏览器即将对HTTP网站设卡:突出展示“始终使用安全连接”功能
前端·网络·chrome·http·搜索引擎·seo·数字营销
C_心欲无痕24 分钟前
ts - 模板字面量类型与 `keyof` 的魔法组合:`keyof T & `on${string}`使用
linux·运维·开发语言·前端·ubuntu·typescript
一勺菠萝丶29 分钟前
Java 后端想学 Vue,又想写浏览器插件?
java·前端·vue.js
@PHARAOH34 分钟前
HOW - 如何禁用 localstorage
前端·状态模式
霍理迪35 分钟前
CSS布局方式——弹性盒子(flex)
前端·css
xkxnq1 小时前
第一阶段:Vue 基础入门(第 14天)
前端·javascript·vue.js
前端小臻1 小时前
列举react中类组件和函数组件常用到的方法
前端·javascript·react.js
筱歌儿1 小时前
TinyMCE-----word表格本地图片转base64并上传
前端·word