在nodejs中找不到模块

时间:2014-12-03 07:14:11

标签: node.js

我正面临这个问题。当我试图运行 app.js

Error: Cannot find module './protocol/json'
        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> (C:\xampp\htdocs\project\dev4\nodejs\node_modules\a
    ws-sdk\lib\core.js:31:11)
        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 Module.require (module.js:364:17)

任何想法。?

由于

2 个答案:

答案 0 :(得分:0)

如果您正在使用node-webkit当前目录实际上是index.html所在的位置,而不是在相关模块的当前目录中。如果您没有使用node-webkit,则只是无法指向文件的正确位置。

编辑:如果我没有弄错的话,当前目录可能不是您的想法,具体取决于node.js脚本的执行方式以及从哪里开始,但请不要抓住我;)

在任何情况下,为了避免文件路径可能出现警告,我建议您使用node.js附带的path module

只需将此代码添加到需要protocol / json的模块中。 (请注意,如果协议目录不是当前目录,它仍然无法要求它。)

var path = require('path');
var json = require( path.resolve(__dirname, './protocol/json') ); 

答案 1 :(得分:0)

我之所以这样,是因为我忘记了在项目中npm install aws-sdk。我以某种方式在主目录中获得了一个node_modules目录,该目录中有一个旧版本的aws-sdk被使用。