2014-05-13 62 views
3

操作系统:Windows 7 64位Node.JS找不到模块'xml2js'(Windows)

需要使用Node.js解析xml文件。使用库进行解析xml2js

使用命令“npm install xml2js”安装Xml2js。


然而,如果你运行该代码:

var fs = require ('fs'), xml2js = require ('xml2js'); 

var parser = new xml2js.Parser(); 
fs.readFile ('<path to the xml-file>', function (err, data) { 
    parser.parseString (data, function (err, result) { 
     console.dir (result); 
     console.log ('Done'); 
    }); 
}); 

错误:

module.js:340 
    throw err; 
     ^
Error: Cannot find module 'xml2js' 
    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> (<путь до js-файла>:3:14) 
    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) 

请告诉我,如何解决这个问题?

回答

5

确保目录./node_modules/xml2js存在。

当您运行npm install somemoduleD:/test,它会被存储到D:/test/node_modules/somemodule,那么你可能需要在此模块中D:/test/*.js,你不能在D:/other/place/*.js需要它。如果您希望该模块可以在任何地方需要你应该运行:

npm install somemodule -g 
+0

谢谢您的答复。创建了一个文件夹“node_modules”并将其移入必要的文件中。另外必须安装模块“sax”和“xmlbuilder”。直到现在安装xmlbuilder并在文件夹“node_modules”中传输整个文件夹“xmlbuilder-js-master”后,尝试运行js-file时出现错误“找不到模块'xmlbuilder'”。请告诉我,为什么这个问题? – someUserMain

+1

我不确定你电脑上的情况。首先,你不需要手动创建,npm会自动创建它。你可以通过'npm list'查看模块,如果你的模块没有正确安装,你会看到一些红字。为了解决不正确的安装问题,你可以使用'cd node_modules/somemodule && npm install',命令'npm install'将读取本地的package.json文件来检查安装或修复依赖关系 – Lellansin

+0

** UPD:**连接“xmlbuilder “必须首先移动先前下载的文件夹”node_modules“中的”xmlbuilder-js-master“,然后在”xmlbuilder“中重命名”xmlbuilder-js-master“,然后在控制台”npm install xmlbuilder“中执行该命令。最后,在这个js代码文件解析器运行正常之后。 – someUserMain

1

我也有类似的问题,甚至试图通过Lellansin提及该修补程序,但它没有帮助。有一些问题与NPM缓存,我不得不使用命令来清除它:

NPM缓存清理

而且它为我工作。

5

我也面临同样的问题。在这里我做了什么。
使用安装模块下面的命令
$ NPM安装-g MODULE_NAME

然后到你的项目目录的任何父目录(也可以是项目目录本身),并运行以下命令
$ NPM链接MODULE_NAME

欲了解更多信息,请check