You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js从MariaDB查询仅返回首行数据的问题求助

解决Next.js从MariaDB仅返回单条数据的问题

问题分析

你的代码使用mariadb驱动的execute方法时,可能因方法特性或返回值处理逻辑,导致仅拿到首行数据。execute主要适配带参数的预处理查询,对于无参数的普通查询,改用query方法更直接,返回结果即为完整的行数组。

修改后的代码

const mariadb = require('mariadb');

export default async function handler(req, res) {
  let dbconnection;
  try {
    dbconnection = await mariadb.createConnection({
      host: "127.0.0.1",
      database: "medipal",
      user: "root",
      password: "password",
      // port: 8889,
      // socketPath: '\\\\.\\pipe\\MySQL'
    });

    const query = "SELECT hospital_id,name,image FROM hospital_l";
    // 改用query方法执行无参数查询,直接获取所有行的数组
    const data = await dbconnection.query(query);

    res.status(200).json({ hospital_list: data });
  } catch (error) {
    res.status(500).json({ error: error.message });
  } finally {
    // 确保无论请求成功或失败,数据库连接都能关闭
    if (dbconnection) await dbconnection.end();
  }
}

关键修改说明

  • 替换execute为query:query方法针对无参数的SELECT查询,直接返回所有匹配记录的数组,无需额外解构处理。
  • 优化连接关闭逻辑:将连接关闭操作移至finally块,避免因异常导致连接未释放的资源泄漏问题。

额外验证步骤

若仍存在问题,可在代码中添加日志确认获取到的记录数量:

console.log('获取到的记录总数:', data.length);

内容的提问来源于stack exchange,提问作者lto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:25:25