【Nuxt3系列十二】后端服务server

341 阅读1分钟

Nuxt不单止是一个前端框架,官方宣称他是全栈的!

Nuxt采用的后端server框架是Nitro,最初是转为Nuxt创建的。但是现在是UnJS的一部分。

Nitro赋予Nuxt的能力为:

  • 完全控制应用的服务器端部分
  • 在任何提供商上通用部署
  • 混合渲染

Nitro在内部使用H3,这是一个为高性能和可移植性而构建的最小HTTP框架

服务器端和中间件

如果想要定义一个/api/test,我们可以像这样

server/api/test.ts

export default defineEventHandler(async (event) => {
  // ... Do whatever you want here
})

你可以控制它返回test,json,html或者是stream

开箱即用的特性,它支持模块热替换和自动导入

统一部署

Nitro提供了在任何地方部署Nuxt应用程序的能力, 从服务器到边缘网络,启动时间仅为几毫秒。非常快。

混合渲染

Nitro有一个强大的功能叫做routeRules,它允许你自定义一组规则,控制每个路由如何渲染。

nuxt.config.ts

export default defineNuxtConfig({
  routeRules: {
    // Generated at build time for SEO purpose
    '/': { prerender: true },
    // Cached for 1 hour
    '/api/*': { cache: { maxAge: 60 * 60 } },
    // Redirection to avoid 404
    '/old-page': {
      redirect: { to: '/new-page', statusCode: 302 }
    }
    // ...
  }
})