使用CommonJS调用fetch-cookie报错:fetchCookie is not a function
出现这个错误的核心原因是:fetch-cookie在CommonJS模块系统中的导出结构和你的调用方式不匹配——直接require('fetch-cookie')得到的是一个包含默认导出的对象,而非直接的函数。
修复步骤
修正fetch-cookie的引入方式
你需要明确获取模块的默认导出,有两种写法可选:写法一:直接取default属性
const fetchCookie = require('fetch-cookie').default; const tough = require('tough-cookie'); // 注意:Node.js 18以下版本需要额外引入node-fetch const fetch = require('node-fetch'); const cookieJar = new tough.CookieJar(); const fetchWithCookies = fetchCookie(fetch, cookieJar);写法二:使用解构赋值
const { default: fetchCookie } = require('fetch-cookie'); const tough = require('tough-cookie'); const fetch = require('node-fetch'); // Node.js 18+可省略 const cookieJar = new tough.CookieJar(); const fetchWithCookies = fetchCookie(fetch, cookieJar);补充Node.js环境的fetch依赖(若需要)
如果你的Node.js版本低于18,全局环境不存在fetchAPI,必须先安装node-fetch包:npm install node-fetchNode.js 18及以上版本自带全局
fetch,可跳过这一步。
内容的提问来源于stack exchange,提问作者gdm
相关产品推荐
相关产品推荐

