前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
  • React专栏

    • React组合式开发实战

      • 前端开发的四个时代
      • 企业管理系统的前世今生
      • 可视化页面搭建工具
      • 实战篇 01:开发前准备
      • 实战篇 02:项目脚手架
      • 实战篇 03:页面布局方案
      • 实战篇 04:权限管理机制
      • 实战篇 05:菜单匹配逻辑
      • 实战篇 06:消息通知设计
      • 实战篇 07:多语言支持
      • 继往开来:可视化页面搭建工具
    • React Hooks与Immutable实战

    • React SSR服务端渲染与同构实践

    • IM聊天系统前端开发实践

    • 微前端开发实战

    • React进阶实践

  • Vue专栏

  • 移动端专栏

  • Node专栏

  • 前端工程化专栏

  • 算法专栏

  • Typescript专栏

  • 其他专栏

完整面试题地址:
作者:程序员poetry
扫码关注作者公众号:「前端进阶之旅」 每天分享技术干货
前端进阶之旅公众号二维码

上一讲我们体验了自动导入功能,整合了 NaiveUI。再加上前面若干章节的学习,视图开发部分告一段落,紧接着我们需要服务端提供接口和数据来填充视图。获取接口和数据通常有两种情况:

  1. 接口已经存在或者由其他后端同事提供;
  2. 接口并不存在需要我们自行编写。

第一种情况属于数据获取范畴,我们将在下一讲讲解;本讲我们针对第二种情况,给大家讲解如何使用 Nuxt3 提供的 API Route 自己编写接口,主要包括以下知识点:

  • 创建服务端 API;
  • 处理请求参数;
  • 返回响应数据。

# 创建服务端 API

Nuxt 项目下~/server/api目录下的文件会被注册为服务端 API,并约定在这些文件中导出一个默认函数defineEventHandler(handler),handler 中可以直接返回 JSON 数据或 Promise,当然也可以使用 event.node.res.end() 发送响应,虽然这没有必要。

下面我们创建一个 server/api/hello.ts 测试一下:这里我们返回给用户一个 json 数据。

javascript
复制代码export default defineEventHandler((event) => {
  return {
    message: 'hello,nuxt3!'
  }
})
@前端进阶之旅: 代码已经复制到剪贴板

这个接口可以使用$fetch('/api/hello')请求,创建一个 hello.vue:

xml
复制代码<template>
  <div>
    {{ message }}
  </div>
</template>

<script setup lang="ts">
const { message } = await $fetch('/api/hello')
</script>
@前端进阶之旅: 代码已经复制到剪贴板

测试效果如下:

img

# 范例:获取博客列表

下面我们实践一下,实现一个博客需求:

  • 创建一个 /api/posts 接口,获取指定目录下 markdown 文章列表数据。

创建 content 目录,创建若干 markdown 文件作为文章:

css
复制代码|-content
---test1.md
---test2.md
---test3.md
@前端进阶之旅: 代码已经复制到剪贴板

创建 server/api/posts.ts,获取 content 中文件列表并返回。

javascript
复制代码import fs from "fs";
import path from "path";
import matter from 
fe
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
  • React专栏

    • React组合式开发实战

      • 前端开发的四个时代
      • 企业管理系统的前世今生
      • 可视化页面搭建工具
      • 实战篇 01:开发前准备
      • 实战篇 02:项目脚手架
      • 实战篇 03:页面布局方案
      • 实战篇 04:权限管理机制
      • 实战篇 05:菜单匹配逻辑
      • 实战篇 06:消息通知设计
      • 实战篇 07:多语言支持
      • 继往开来:可视化页面搭建工具
    • React Hooks与Immutable实战

    • React SSR服务端渲染与同构实践

    • IM聊天系统前端开发实践

    • 微前端开发实战

    • React进阶实践

  • Vue专栏

  • 移动端专栏

  • Node专栏

  • 前端工程化专栏

  • 算法专栏

  • Typescript专栏

  • 其他专栏