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

Next.js API路由中如何获取URL传递的req.query参数?

Next.js API 接口req.query为空的解决方案

你可以按照以下步骤排查修复:

  • 首先确认当前API路由文件没有关闭Next.js默认的请求解析配置,如果你添加了如下配置请直接删除,默认配置下Next.js会自动解析URL查询参数挂载到req.query对象上:
// 移除该段配置,除非你有自定义解析需求
export const config = {
  api: {
    bodyParser: false
  }
}

关闭bodyParser不仅会禁用请求体解析,也会终止默认的查询参数解析逻辑。

  • 如果你确实需要关闭bodyParser(例如处理文件上传场景),可以手动从请求URL中解析参数,修改后的代码如下:
import { parse } from 'url';
const handler = nc().use(Cors());
handler.get(async (req, res) => {
    await db.connect();
    // 手动解析查询参数
    const { query } = parse(req.url || '', true);
    console.log(query);
    const page = parseInt(query.page?.toString() || '1', 10);
    const limit = parseInt(query.limit?.toString() || '30', 10);
    const products = await Product.paginate({}, { page, limit });
    res.send(products);
});

export default handler;
  • 排查next-connect版本兼容问题:如果你使用的是0.x旧版本的next-connect,升级到1.x最新稳定版即可解决部分场景下原生req属性丢失的问题。
  • 检查next.config.js中的重写/重定向规则,确认规则没有丢弃查询参数:如果配置了路径重写,不需要额外修改即可默认保留查询参数,如果使用了通配符路径匹配,确保规则不会截断参数传递。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:06:04