【问题标题】:Express doesn't work on ubuntuExpress 在 ubuntu 上不起作用
【发布时间】:2013-12-28 14:14:11
【问题描述】:

我是 nodejs 的新手,正在尝试学习它。我已经通过命令将 node framework express 安装为全局模块:

$ sudo npm install express -g

这可以正常工作,我在/usr/lib/node_modules 中有它。然后我在 express 上创建一个新项目:

 $ express app

但这不会创建项目文件夹并且不会返回任何错误代码,清除节点代码可以正常工作。有人知道如何检测和修复此错误吗?

【问题讨论】:

  • 您在运行$ express app 时的当前路径是什么? ($ pwd的结果)
  • 好的,$ npm -g ls | grep express 的输出是什么?
  • 这个express@3.4.6
  • 奇特!你可以在命令行中只运行express 吗?你甚至能够执行它吗?
  • 是的,看起来可行,但在我重新安装节点之前。所以现在我可以用 express 创建应用了。但无论如何,谢谢你的帮助好人!;-)

标签: node.js ubuntu express npm


【解决方案1】:

从 Ubuntu 16.04 LTS 开始,全局安装 express 时会出现问题。要解决此问题,请确保将 express 安装到您的工作目录,即使您已全局安装。 使用

sudo npm i express-generator --save

在您所做的每个项目中将其保存到您的工作目录中。

遇到这个问题并轻松解决,无需重新安装 nodejs 或任何其他依赖项。

【讨论】:

    【解决方案2】:

    找到了。 npm 包实际上被命名为 express-generator

    sudo npm install -g express-generator
    

    然后你可以使用

    express mytestapp
    

    导致:

    olivier@****:~/workspace$ express mytestapp
    
    create : mytestapp
    create : mytestapp/package.json
    create : mytestapp/app.js
    create : mytestapp/public
    create : mytestapp/public/javascripts
    create : mytestapp/public/stylesheets
    create : mytestapp/public/stylesheets/style.css
    create : mytestapp/routes
    create : mytestapp/routes/index.js
    create : mytestapp/routes/users.js
    create : mytestapp/views
    create : mytestapp/views/index.jade
    create : mytestapp/views/layout.jade
    create : mytestapp/views/error.jade
    create : mytestapp/bin
    create : mytestapp/bin/www
    create : mytestapp/public/images
    
    install dependencies:
     $ cd mytestapp && npm install
    
    run the app:
     $ DEBUG=my-application ./bin/www
    

    干杯! 奥利维尔

    来源:http://expressjs.com/guide.html#executable

    【讨论】:

    • 你是我的英雄!我一直在寻找解决方案,终于找到了这个。
    • 这就是我的问题。非常感谢
    【解决方案3】:

    对我来说,解决方案只是安装 nodejs-legacy 包:

    sudo apt-get install nodejs-legacy
    

    【讨论】:

    • @codefreak - 非常有用,只有这个解决方案有效。谢谢 :) :+1
    【解决方案4】:

    这就是我所做的让我的工作并确保在运行 Node 0.8.21 和 Express 3.2.0 的 Ubuntu 12.04 上一切正常。

    先安装快递

    sudo npm install –g express
    

    现在通过查询版本来检查 express 是否正常工作:

    express -V
    

    现在我创建了一个快递应用:

    cd /usr/lib/node_modules
    sudo express -s -e expressTestApp
    

    输出如下:

    create : expressTestApp
    create : expressTestApp/package.json
    create : expressTestApp/app.js
    create : expressTestApp/public
    create : expressTestApp/public/javascripts
    create : expressTestApp/public/images
    create : expressTestApp/public/stylesheets
    create : expressTestApp/public/stylesheets/style.css
    create : expressTestApp/routes
    create : expressTestApp/routes/index.js
    create : expressTestApp/routes/user.js
    create : expressTestApp/views
    create : expressTestApp/views/index.ejs
    
    install dependencies:
     $ cd expressTestApp && npm install
    
    run the app:
     $ node app
    

    所以,按照它给我的说明,我依次运行了以下两个命令:

    cd expressTestApp
    sudo npm install
    

    一分钟后它就完成了,我能够打开 /urs/lib/node_modules/app.js 并使用它。此外,在 express 模块创建期间按照说明中所述运行节点应用程序也可以正常工作。

    从之前的评论看来,您可能已经通过重新安装节点来修复它,但我仍然希望这对您有所帮助。

    【讨论】:

      【解决方案5】:

      也许sudo express app 可以解决问题? (我看到你在/var/www 执行,这通常是普通用户的禁区?)

      【讨论】:

      • 他通过重新安装 Node 解决了这个问题 ;)
      【解决方案6】:

      首先要尝试的是插件是否已安装:

      $ npm -g ls | grep express

      如果没有返回,请尝试重新安装。

      由于在这种情况下它仍然被安装,下一个解决方案是完全重新安装 Node。

      这里有一篇关于清理 Node 安装的好帖子:Uninstall Node.JS using Linux command line?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-08
        • 1970-01-01
        • 2014-06-05
        • 2012-10-09
        • 2010-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多