Nodejs 测试Thrift 模块报错找不到库

Nodejs 测试Thrift 模块报错找不到库

文件夹截图

dropbox 图片不支持外链?麻烦图片新标签打开查看!!!

module.js:340
    throw err;
          ^
Error: Cannot find module 'thrift/transport'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/opt/lampp/htdocs/ThriftDemo/client.js:2:24)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)

怎么回事呢,Thrift 库明明已经安装了啊,怎么会找不到呢


2 回复

根据你提供的错误信息和描述,问题可能出在 thrift 模块的安装或者路径配置上。以下是一些可能的解决方案:

解决方案

1. 确认 thrift 是否正确安装

首先确认 thrift 模块是否正确安装在你的项目中。你可以通过运行以下命令来检查:

npm list thrift

如果输出显示 thrift 没有安装或版本不对,可以尝试重新安装:

npm install thrift --save

2. 检查 node_modules 目录

确保 node_modules 目录下确实存在 thrift 文件夹,并且其中包含 transport 子目录。

3. 检查代码中的路径引用

检查你的代码中是否有误引用模块路径的地方。例如,确保你在引用 thrift/transport 时没有拼写错误。

const thrift = require('thrift');
const transport = require('thrift/transport'); // 确保路径正确

4. 使用绝对路径

如果你使用的是绝对路径,确保路径是正确的。你可以尝试直接从 node_modules 中引入模块:

const transport = require('thrift/lib/thrift/transport');

示例代码

假设你有一个简单的 Thrift 客户端代码,它需要导入 thriftthrift/transport

// client.js
const thrift = require('thrift');
const transport = require('thrift/transport');

// 创建一个 Thrift 连接
const connection = thrift.createConnection('localhost', 9090, {
  transport: transport.TBufferedTransport,
  protocol: thrift.TBinaryProtocol
});

// 创建一个 Thrift 客户端
const client = thrift.createClient(YourService, connection);

// 发送请求
client.yourMethod(args, function(err, response) {
  if (err) {
    console.error(err);
  } else {
    console.log(response);
  }
});

总结

以上步骤应该可以帮助你解决 Cannot find module 'thrift/transport' 的问题。主要检查点包括确保 thrift 模块已正确安装,路径引用正确,并且路径配置无误。如果问题仍然存在,请提供更多的环境信息或代码片段以便进一步诊断。


根据错误信息,module.js:340 抛出的错误表明 Node.js 无法找到 thrift/transport 模块。这通常是因为模块路径配置不正确或依赖项没有正确安装。

首先,确保你已经全局或本地安装了 thrift 库。可以使用以下命令来安装:

npm install thrift --save

确保你的项目目录中有一个 node_modules 文件夹,并且 thrift 已经被正确安装在里面。

检查你的代码,确认你引用的路径是正确的。如果你需要引入 Thrift 的 transport 模块,你应该这样写:

const { TBufferedTransport } = require('thrift').transport;

另外,检查是否有误将模块名写为 thrift/transport 而不是 thrift.transport。完整的代码示例如下:

// client.js
const thrift = require('thrift');
const { TBufferedTransport } = thrift.transport;

// 其他代码...

如果问题仍然存在,请尝试删除 node_modules 文件夹并重新安装依赖:

rm -rf node_modules
npm install

希望这些步骤能够帮助你解决问题。

回到顶部