如何处理Mollie mandates API返回的分页响应数据
问题根因
你遇到的两个报错均由Mollie Node.js客户端的版本差异、封装逻辑导致:
- 无法访问
_embedded/_links:官方Node.js客户端对HAL格式的API响应做了封装,不会直接暴露原始响应的_embedded、_links字段给外层,仅暴露了count等基础属性,所以直接访问会返回undefined。 - 调用
customerMandates.all报错:你当前安装的是v2及以下的旧版本客户端,customerMandates驼峰命名、all方法都是v3+版本新增的API,旧版本不存在该属性所以报错。
解决方案
方案1:沿用当前旧版本客户端(无需升级)
直接使用客户端封装好的属性和方法获取数据,不需要访问原始_embedded字段:
const mandates = await mollieClient.customers_mandates.page({customerId: customerID}); // 获取所有mandate数组 const mandateList = mandates.items; // 遍历使用示例 mandateList.forEach(mandate => { console.log(mandate.id, mandate.status, mandate.details); }); // 获取链接信息,调用getLinks()方法,不需要直接访问_links const links = mandates.getLinks(); console.log(links.next?.href);
方案2:升级到最新v3+版本客户端,使用新API
先执行升级命令:
npm install @mollie/api-client@latest
升级后即可使用示例中的写法,返回结果直接可遍历,不需要额外处理:
const mandates = await mollieClient.customerMandates.all({ customerId: customerID, }); // 直接使用mandates数组即可 console.log(mandates.length); mandates.forEach(mandate => { console.log(mandate.id); });
内容的提问来源于stack exchange,提问作者Melle
相关产品推荐
相关产品推荐

