nodejs和express出错

时间:2014-08-06 21:42:05

标签: node.js express ubuntu-13.10

我正在尝试在ubuntu 13.10发行版中使用express。我正在使用node version 0.10.29npm 1.4.14当我使用express时,这是我的输出:

    module.js:340
       throw err;
      ^
    Error: Cannot find module 'mkdirp'
      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> (/usr/bin/express:10: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)

此外,我必须使用sudo npm因为npm无法正常工作(我不确定这是否是问题的一部分 - 但我怀疑路径问题,不是很确定)。我用谷歌搜索了但是还没有能够解决问题。

编辑:我想我搞砸了我的道路。我无法重新安装npm。这是$PATH

的输出

bash: /home/qtrain/npm/bin:/usr/bin/yo:/home/qtrain/.node/bin:/home/qtrain/Enthought/Canopy_64bit/User/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/qtrain/.rvm/bin:/home/qtrain/.rvm/bin:/home/qtrain/.rvm/bin:

2 个答案:

答案 0 :(得分:2)

mkdirp错误似乎源于迈克尔回答的使用chris-lea repo for node.js

修复:消除PPA和节点本身,然后重新安装如下。

1。)sudo apt-get install ppa-purge - 如果你还没有它

2。)sudo ppa-purge ppa:chris-lea/node.js

3。)sudo apt-get remove nodejs

4。)sudo apt-get remove npm

5。)sudo apt-get autoremove

6。)sudo apt-get install nodejs

7。)sudo apt-get install npm

8。)sudo apt-get install node-express

答案 1 :(得分:0)

我在使用npm和express时遇到了类似的问题。我的解决方案是使用sudo apt-get remove nodejs

从我的整个系统中卸载节点

然后我按照这里的指示http://chimera.labs.oreilly.com/books/1234000001808/ch01.html#chap5_id35941617

重新安装了源节点

然后我必须使用sudo apt-get install npm单独安装npm,但它仍然无效。

就在那时我意识到我从chris lea安装的ppa repos没有配置为13.10

https://launchpad.net/~chris-lea/+archive/ubuntu/node.js-legacy

删除它们并使用sudo apt-get install npm重新安装npm并使用sudo apt-get install node-express安装快递

然后我能够使用npm并表达

希望这会有所帮助..