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

在Next.js中实现每次请求API端点时执行函数生成随机值

问题原因及解决办法

你的问题出在Math.random()的用法上——Math.random()不接受参数,你写的Math.floor(Math.random(10))实际上等价于Math.floor(Math.random())。而Math.random()返回的是0到1之间(不包含1)的浮点数,取整后永远是0,这就是每次返回同一个数字的核心原因。

正确代码示例

export default function handler(req, res) {
  // 生成 0-9 的随机整数
  let number = Math.floor(Math.random() * 10);
  // 如果需要生成 1-10 的随机整数,替换成下面这行:
  // let number = Math.floor(Math.random() * 10) + 1;
  res.status(200).json({ name: number });
}

额外注意事项

如果后续在生产环境遇到API响应被缓存导致结果不变的情况,可以在API路由里显式禁用缓存:

export default function handler(req, res) {
  // 禁用浏览器及服务器端缓存
  res.setHeader('Cache-Control', 'no-store');
  let number = Math.floor(Math.random() * 10);
  res.status(200).json({ name: number });
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:21:34