2014-05-13 92 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