从零开始使用 Next.js 和 MySQL 构建全栈应用

阅读时长 9 分钟读完

在现代 Web 应用中,前端和后端技术已经不再有明确的分界线,全栈技能变得越来越重要。Next.js 是基于 React 的一个前端框架,它不仅能够构建高性能的客户端应用,还包含了服务器端渲染和静态页面生成的功能,让我们能够更加灵活地开发 Web 应用。本文将介绍如何使用 Next.js 和 MySQL 构建一个全栈应用,并提供详细的学习和指导。

准备环境

在开始之前,我们需要先准备好开发环境。首先需要安装 Node.js 和 npm,然后使用 npm 安装 Next.js 和相关依赖:

同时,我们需要安装一个 MySQL 数据库,可以使用本地安装或者云服务器,具体安装方法略。

创建项目

接着,我们可以使用 Next.js 提供的脚手架来创建项目:

创建完成后,我们可以启动开发服务器来查看项目的结构和运行效果:

访问 http://localhost:3000 可以看到项目的欢迎页面。然后我们需要创建一些页面和组件来构建我们的应用。

创建页面和路由

Next.js 通过文件系统的约定来决定路由,即组织页面的方式决定了访问地址。灵活的路由有助于我们快速地开发 Web 应用。我们可以在 /pages 目录下创建文件来创建页面,例如 index.js 是项目的首页:

-- -------------------- ---- -------
------ ----- ---- --------
------ ---- ---- ------------
------ ------ ---- -----------------------

------ ------- -------- ------ -
  ------ -
    --------
      ------
        ----------- ------------
      -------
      ------------ -- -- ----------
    ---------
  --
-

Layout 组件中我们可以放置公共的头部、导航栏和尾部等部分,减少重复代码。

我们还可以创建其他页面和路由,例如 /about 页面:

-- -------------------- ---- -------
------ ----- ---- --------
------ ---- ---- ------------
------ ------ ---- -----------------------

------ ------- -------- ------- -
  ------ -
    --------
      ------
        ------------ ------------
      -------
      --------- -- --- ----- -----------
    ---------
  --
-

这样我们就可以在访问 http://localhost:3000/about 时看到关于页面。Next.js 会根据文件名自动添加路由。

连接 MySQL 数据库

下一步我们需要向应用中添加数据存储功能,这里我们选择使用 MySQL 数据库。可以使用 mysql 模块连接数据库,并封装一些函数来操作数据。在项目根目录下创建一个 mysql.js 文件来连接数据库:

-- -------------------- ---- -------
----- ----- - -----------------

----- ---------- - ------------------------
  ----- ------------
  ----- -------
  --------- ---
  --------- -------
---

------------------------ -- -
  -- ------- -
    --------------------- -- ------- -- -------- -------
  - ---- -
    ---------------------- -- ----- ------------
  -
---

------------- - ----- ------- -- -
  ------ --- ----------------- ------- -- -
    --------------------- ------- ------- -------- -- -
      -- ------- -
        --------------
      - ---- -
        -----------------
      -
    ---
  ---
--

这里我们创建了一个 query 函数来执行 SQL 查询语句,可以方便地在需要时调用。

创建 API

接着我们可以创建一些 API 接口来向客户端提供数据服务。首先我们需要在 pages/api 目录下创建一个 users.js 文件来处理用户数据的增删改查操作:

-- -------------------- ---- -------
------ - ----- - ---- --------------

------ ------- --------- --------- -- -
  ------ ---------------- -
    ---- ------
      ----------------- ----------
      ------
    ---- -------
      ------------------- ----------
      ------
    ---- ------
      ------------------- ----------
      ------
    ---- ---------
      ------------------- ----------
      ------
    --------
      ---------------------------
  -
--

----- -------- ----------------- --------- -
  --- -
    ----- ------- - ----- ------------- - ---- --------
    -----------------------------------
  - ----- ------- -
    ------------------ ------------- -------
    ---------------------------
  -
-

----- -------- ------------------- --------- -
  --- -
    ----- - ----- ---- ----- - - -------------
    ----- ------- - ----- ------------- ---- ----- --- --- - ----- ---- ----- ---
    --------------------------- --- ---------------- ---
  - ----- ------- -
    ------------------- ------------- -------
    ---------------------------
  -
-

----- -------- ------------------- --------- -
  --- -
    ----- - -- - - --------------
    ----- - ----- ---- ----- - - -------------
    ----- ------------- ----- --- - ----- -- - --- -- ----- ---- ----- -- -----
    ---------------------------
  - ----- ------- -
    ------------------ ------------- -------
    ---------------------------
  -
-

----- -------- ------------------- --------- -
  --- -
    ----- - -- - - --------------
    ----- ------------- ---- ----- ----- -- - --- ----
    ---------------------------
  - ----- ------- -
    --------------------- ------------- -------
    ---------------------------
  -
-

在这个文件中,我们封装了四个 API 接口,通过不同的 HTTP 方法来执行不同的操作。例如 GET /api/users 是获取所有用户,POST /api/users 是添加新用户,PUT /api/users/:id 是修改指定用户,DELETE /api/users/:id 是删除指定用户。

然后我们需要在客户端页面中调用这些 API 接口,例如在首页中获取用户列表:

-- -------------------- ---- -------
------ ------ - ---------- -------- - ---- --------
------ ---- ---- ------------
------ ------ ---- -----------------------
------ - -------- - ---- ---------------

------ ------- -------- ------ -
  ----- ------- --------- - -------------

  ------------ -- -
    ----------
      ---------- -- ---------------
      ------------ -- ----------------------
  -- ----

  ------ -
    --------
      ------
        ----------- ------------
      -------
      ----
        --------------- -- -
          --- --------------
            ------------ ----------- ------------
          -----
        ---
      -----
    ---------
  --
-

这里我们使用了 useEffect 函数来在组件挂载时获取用户列表,并使用 useState 函数来保存用户数据。

总结

至此,我们通过使用 Next.js 和 MySQL 构建了一个简单的全栈应用,并实现了数据的存储、路由和 API 接口等功能。当然,一个完整的应用还有许多其他方面的细节需要考虑,例如身份验证、数据校验和性能优化等。

希望本文对你有所启发和帮助,如果你想深入了解 Next.js 和全栈开发,可以继续学习相关的技术和工具。完整的代码示例可以参考以下 GitHub 仓库:

https://github.com/example/my-app

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66557c58d3423812e4a1fcf8

纠错
反馈