使用Mindee Node.js SDK时出现Cannot find module 'node:buffer'错误的原因
问题:使用Mindee Node.js SDK时出现"Cannot find module 'node:buffer'"错误
正在基于Mindee开发PDF转文本功能,按照官方文档编写并运行Node.js代码时,抛出如下错误:
internal/modules/cjs/loader.js:883 throw err; ^ Error: Cannot find module 'node:buffer' Require stack: - C:\Users\budgi\OneDrive\Documentos\TrabajosBi\Proy\Fedex\v2\node_modules\mindee\src\inputs\sources.js - C:\Users\budgi\OneDrive\Documentos\TrabajosBi\Proy\Fedex\v2\node_modules\mindee\src\inputs\index.js - C:\Users\budgi\OneDrive\Documentos\TrabajosBi\Proy\Fedex\v2\node_modules\mindee\src\client.js - C:\Users\budgi\OneDrive\Documentos\TrabajosBi\Proy\Fedex\v2\node_modules\mindee\src\index.js - C:\Users\budgi\OneDrive\Documentos\TrabajosBi\Proy\Fedex\v2\app.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15) at Function.Module._load (internal/modules/cjs/loader.js:725:27) at Module.require (internal/modules/cjs/loader.js:952:19) at require (internal/modules/cjs/helpers.js:88:18) at Object.<anonymous> (C:\Users\budgi\OneDrive\Documentos\TrabajosBi\Proy\Fedex\v2\node_modules\mindee\src\inputs\sources.js:30:23) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) at Function.Module._load (internal/modules/cjs/loader.js:769:14) at Module.require (internal/modules/cjs/loader.js:952:19) { code: 'MODULE_NOT_FOUND', requireStack: [ 'C:\\Users\\budgi\\OneDrive\\Documentos\\TrabajosBi\\Proy\\Fedex\\v2\\node_modules\\mindee\\src\\inputs\\sources.js', 'C:\\Users\\budgi\\OneDrive\\Documentos\\TrabajosBi\\Proy\\Fedex\\v2\\node_modules\\mindee\\src\\inputs\\index.js', 'C:\\Users\\budgi\\OneDrive\\Documentos\\TrabajosBi\\Proy\\Fedex\\v2\\node_modules\\mindee\\src\\client.js', 'C:\\Users\\budgi\\OneDrive\\Documentos\\TrabajosBi\\Proy\\Fedex\\v2\\node_modules\\mindee\\src\\index.js', 'C:\\Users\\budgi\\OneDrive\\Documentos\\TrabajosBi\\Proy\\Fedex\\v2\\app.js' ] }
使用的app.js代码(来自官方文档):
const mindee = require("mindee"); // for TS or modules: // import * as mindee from "mindee"; // Init a new client const mindeeClient = new mindee.Client({apiKey: "1234567890"}); // Load a file from disk and parse it const invoiceResponse = mindeeClient .docFromPath("/path/to/the/invoice.pdf") .parse(mindee.InvoiceV3); // Print a the parsed data invoiceResponse.then((resp) => { // The document property can be undefined: // * TypeScript will throw an error without this guard clause // (or consider using '?' notation) // * JavaScript will be very happy to produce subtle bugs // without this guard clause if (resp.document === undefined) return; // full object console.log(resp.document); // string summary console.log(resp.document.toString()); });
错误原因及解决方法
核心原因
这个错误的本质是你的Node.js版本过低。node:buffer这种带node:前缀的模块导入语法,是Node.js v16.0.0及以上版本才支持的特性。如果你的Node.js版本低于v16.0.0,就会触发"找不到模块"的错误。而Mindee的最新SDK依赖了这个新语法,导致旧版本Node.js无法兼容。
解决步骤
- 检查当前Node.js版本:在终端运行
node -v查看版本号 - 升级Node.js:如果版本低于v16.0.0,升级到v16或更高的LTS版本(推荐v18或v20)
- 重新安装依赖:删除项目中的
node_modules文件夹和package-lock.json(或yarn.lock)文件,然后运行npm install - 重新运行代码:完成上述步骤后,再次执行你的代码即可解决问题
内容的提问来源于stack exchange,提问作者Carmen Lucía
相关产品推荐
相关产品推荐

