在NEXTJS中使用npm google trends api出现res.status非函数错误如何解决
问题解决方法
核心错误1:handler参数顺序颠倒
Next.js Pages Router 路由的处理函数参数固定为(req, res),第一个参数是请求对象,第二个参数是响应对象。你代码中把两个参数写反了,导致拿到的res实际是请求对象,本身不存在status方法,这是报错的直接原因。
次要错误:异步逻辑与导出规则有误
- 你同时使用了
await和.then,且.then回调中没有返回任何值,最终data变量会得到undefined,无法正确返回接口数据 - 没有捕获请求异常,谷歌接口调用报错时会导致接口超时无响应
- 缺少默认导出handler的语句,Next.js无法正常识别API路由
修正后的完整代码
import googleTrendsApi from "google-trends-api"; const handler = async (req, res) => { try { // 直接用await接收返回结果,无需额外加.then const results = await googleTrendsApi.interestOverTime({ keyword: ["Women's march", "Trump Inauguration"] }); console.log("These results are awesome", results); res.status(200).json({ data: results }); } catch (error) { // 捕获请求异常,返回错误响应 console.error("谷歌趋势请求失败:", error); res.status(500).json({ error: "数据请求失败", msg: error.message }); } }; // 必须导出默认处理函数,Next.js才能识别路由 export default handler;
内容的提问来源于stack exchange,提问作者KeoooDev
相关产品推荐
相关产品推荐

