使用 Next.js 连接 mysql 数据库

这篇具有很好参考价值的文章主要介绍了使用 Next.js 连接 mysql 数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本文主要为大家介绍,如何使用 Next 框架实现一个简单的后端接口,并且从数据库中请求数据返回给前端。

实现

创建api/getData文件夹

项目创建完成后在 app 文件下新建api文件夹,在 api 文件夹下新建 getData 文件夹,在 getData 文件夹下新建 route.js,这里面用于存储我们的接口信息,如下

使用 Next.js 连接 mysql 数据库,javascript,开发语言,ecmascript

注意:在 Nuxt.js中,app文件夹通常用于存放应用程序的配置和组件,而 api文件夹则用于存放API路由处理程序。

当我们在 api文件夹中创建子文件夹时,Nuxt.js 会将这些子文件夹视为 API 的路径的一部分。我们就可以直接将子文件夹的名称作为 API 的路径的一部分。

拿我们上面创建的举例,我们在页面中请求的路径就为:api/getData

route.js中写接口信息

import { NextResponse } from 'next/server'
const mysql = require('mysql2/promise')

// 创建全局的 MySQL 连接池
const pool = mysql.createPool({
  connectionLimit: 10,
  host: '127.0.0.1', // 服务器地址
  user: 'root',
  password: '123456', // 密码
  database: 'jackson_blog_dev',
})

export async function GET(request) {
  try {
    // 从连接池中获取连接
    const connection = await pool.getConnection()

    // 执行 MySQL 查询
    const [rows, fields] = await connection.query('SELECT * FROM jacksonblogbacked')

    // 释放连接回连接池
    connection.release()

    return NextResponse.json({ data: rows }, { status: 200 })
  } catch (error) {
    console.error('Error:', error)
    return NextResponse.json({ error: 'Internal Server Error' }, { status: 500 })
  }
}

安装 mysql2

安装 mysql2 用于连接本地数据库

npm install mysql2

创建 mysql 连接,并把相应信息填写上

(这一步大家要按照自己的数据库信息)

// 创建全局的 MySQL 连接池
const pool = mysql.createPool({
  connectionLimit: 10,
  host: '127.0.0.1', // 服务器地址
  user: 'root',
  password: '123456', // 密码
  database: 'jackson_blog_dev',
})

接下来就是从表中查询数据,我们使用 'next/server' 提供的 NextResponse 把数据以 json 对象的形式返回出去即可。

export async function GET(request) {
  try {
    // 从连接池中获取连接
    const connection = await pool.getConnection()

    // 执行 MySQL 查询
    const [rows, fields] = await connection.query('SELECT * FROM jacksonblogbacked')

    // 释放连接回连接池
    connection.release()

    return NextResponse.json({ data: rows }, { status: 200 })
  } catch (error) {
    console.error('Error:', error)
    return NextResponse.json({ error: 'Internal Server Error' }, { status: 500 })
  }
}

使用接口

现在我们已经在把接口信息写好了,如何在页面中使用呢?

页面中使用

接口已经初始化好了,接下来就是在页面中使用接口

在 app/page.tsx 中

'use client' //客户端渲染时
import React, { useState, useEffect } from 'react'

const Home = () => {
  const [data, setData] = useState([])

  useEffect(() => {
    fetchData()
  }, [])

  const fetchData = async () => {
    try {
      const response = await fetch('/api/getData')
      const res = await response.json()
      const data = res.data[0]
      setData(data.title)
      console.log('data: ', data)
    } catch (error) {
      console.error('Error fetching data:', error)
    }
  }

  return (
    <div>
      <h1>测试mysql连接:{data}</h1>
    </div>
  )
}

export default Home

这里为了测试数据响应渲染到页面中,我们使用了useState钩子函数,需要在顶部加上 'use client' 表示在客户端渲染即可。

我们直接使用fetch请求我们的接口,正如我上面所说的,直接请求 /api/getData 这个接口地址即可,无需再进行其他接口配置。

  const fetchData = async () => {
    try {
      const response = await fetch('/api/getData')
      const res = await response.json()
      const data = res.data[0]
      setData(data.title)
      console.log('data: ', data)
    } catch (error) {
      console.error('Error fetching data:', error)
    }
  }

最后将得到的数据渲染到页面中即可

      const data = res.data[0]
      setData(data.title)

效果如下:

使用 Next.js 连接 mysql 数据库,javascript,开发语言,ecmascript

总结

首先在 Next 中创建好接口文件,接口文件的模式按照 Next 所提供的接口格式进行接口配置,最后在页面中直接使用接口路径使用即可。

以上就是如何使用 Next 框架实现一个简单的后端接口所有内容,如果你感觉写的还不错对你有帮助的话,可以点个赞支持一下,你的支持就是作者最大的动力 !

源码

所有代码都已经提交到 GitHub

GitHub:chenyajun-create/next-mysql (github.com)文章来源地址https://www.toymoban.com/news/detail-835149.html

到了这里,关于使用 Next.js 连接 mysql 数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL】使用C++连接数据库

    创建数据库并选中 创建表并描述表结构 增加删除修改均可正常执行,查询较为复杂,整体代码中有案例 如果查询则需要把查询数据保存到结果集,通过mysql所提供的函数 得到行和列,遍历得到结果。 初始化mysql并返回句柄(默认传入nullptr即可) 如: MYSQL *mfp = mysql_init(nul

    2024年02月13日
    浏览(48)
  • 前端使用node.js连接sql.server数据库教程

    最近项目中要用到node写接口然后连接公司现有的sql.server数据库,再把执行结果返回给前端(还是我),因为之前一直做前端这块,后端这方面不是很懂,花了很长的时间终于研究出来了(还是太菜了,走了很多弯路),所以写个博客,一是复习巩固,二是给其他有需要的小伙伴一个参考,尽量

    2024年02月11日
    浏览(57)
  • 在Node.js中使用MongoDB连接数据库、创建集合

    本文主要介绍在Node.js中使用MongoDB连接数据库、创建集合的方法。 在Node.js中使用MongoDB连接数据库有两种方式:使用原生驱动程序和使用Mongoose。 首先,需要安装 mongodb 模块。可以通过以下命令来安装: 安装完成后,可以在代码中引入模块: 接着,可以使用 MongoClient 来连接

    2024年02月04日
    浏览(49)
  • 使用C#连接MySQL数据库(详解)

    ✨前言✨ 本片文章,主要在于C#连接MySQL数据库,由于这之间无法建立直接联系,这时候就涉及到了第三方连接工具.NET,以此来建立C#与MySQL数据库的连接 🍒欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍒博主将持续更新学习记录收获,友友们有任何问题可以在评论区留

    2024年02月05日
    浏览(64)
  • 使用eclipse连接mysql数据库步骤

    1.导入连接MySQL数据库驱动包(例如mysql-connector-java-5.1.7-bin.jar),并测试。 步骤: 1)在eclipse里面点击右上角的图标,如下图所示。 2)选中Database Connections右键,点new。 3)选择MySQL,点击next。 4)如图所示: 2.引用MySQL驱动包jar 在项目右键一个文件夹lib,把驱动包复制进去,

    2024年02月11日
    浏览(64)
  • Navicat (连接mysql数据库)的基本使用

    目录 前言 一、navicat-15的下载安装 二、navicat连接数据库 1、登录 2、连接数据库失败情况 3、登录数据库需要授权 三、navicat的基础操作  ☆ 1、数据库的基本操作 2、对表进行操作 3、sql 语句管理数据库  4、用户管理 5、 视图的创建 6、表的导入与导出  7、数据库的备份 

    2024年02月04日
    浏览(59)
  • uniapp使用express连接mysql数据库

    使用win+R再输入cmd打开命令提示符,输入如下内容全局安装脚手架 npm i express-generator -g 可以在命令提示符中cd到自己项目的根目录下,也可以在HBuilder X里内置的终端运行代码  C:HBuilderProjectswordman express --view=ejs server 说明:前面是项目的根目录,express --view=ejs projectName proje

    2024年02月06日
    浏览(116)
  • 【MySQL系列】使用C语言来连接数据库

    ☕导航小助手☕      🍚 写在前面           🥡 一、准备工作                🧇🧇 1.1 把 libmysql.dll 和 libmysql.lib 文件复制到工程目录下                🍞🍞 1.2 添加 libmysql.lib                 🦪🦪 1.3 添加 include目录                🍔🍔 1.4 包含头文件    

    2024年02月04日
    浏览(50)
  • 【MySQL】如何使用Unix Sockets 协议连接MySQL数据库

    MySQL入门02:关于MySQL连接的ABC 【MySQL】如何使用Named Pipe协议(Windows)连接MySQL数据库 【MySQL】如何使用Shared-memory协议(Windows)连接MySQL数据库 【MySQL】如何使用Unix Sockets 协议连接MySQL数据库 【免责声明】文章仅供学习交流,观点代表个人,与任何公司无关。 编辑|SQL和数据库技术

    2024年02月11日
    浏览(44)
  • 使用SqlSugar连接多个数据库(sqlserver,sqlite,mysql)

        有时候,一个项目只有一个数据库,比如只有SQLite,或者MySQL数据库,那么我们只需要使用一个固定的数据库即可。但是一个项目如果写好了,有多个用户使用,但是多个用户使用不同的数据库,这个时候,我们就需要把软件设计成可以连接多个数据库的模式,用什么数

    2023年04月08日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包