Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 快车路线_Node.js_Express - Fatal编程技术网

Node.js 快车路线

Node.js 快车路线,node.js,express,Node.js,Express,为什么找不到express命令。这是快车的路线 /usr/lib/node_modules/express 当我安装express时,终端会显示路径。我曾经 npm install -g express-generator npm install -g express 但当我运行express时,它不起作用。在这个目录中,express是全局正确的吗?但是为什么找不到呢。我不理解逻辑。您需要在本地安装express,而不是在全局安装 一般来说,经验法则是: 如果要使用require('

为什么找不到express命令。这是快车的路线

/usr/lib/node_modules/express
当我安装express时,终端会显示路径。我曾经

npm install -g express-generator  
npm install -g express

但当我运行express时,它不起作用。在这个目录中,express是全局正确的吗?但是为什么找不到呢。我不理解逻辑。

您需要在本地安装express,而不是在全局安装

一般来说,经验法则是:

  • 如果要使用require('whatever')安装要在程序中使用的内容,请在项目根目录下本地安装
  • 如果要在shell、命令行或其他地方安装要使用的内容,请全局安装,以便其二进制文件最终位于PATH环境变量中
  • 基于此,您希望使用
    -g
    标志安装
    express generator
    ,因为您将其用作命令行工具,但您希望安装
    express
    而不使用此标志,因为它是您希望在应用程序中
    需要()的模块


    请参阅安装指南:

    它说将
    expressgenerator
    模块作为全局模块安装,因为您将使用它作为命令行实用程序来构建新的应用程序

    使用
    express myapp
    命令构建应用程序后,只需在
    myapp
    目录中运行
    npm install
    ,该目录将其余依赖项下载到项目本地
    /node\u modules
    目录。它通过读取生成的
    package.json
    文件的内容来实现这一点



    要吸取的教训:除非模块说明指南明确要求,否则不要使用
    -g
    标志进行安装。

    谢谢。我不理解“/usr/lib/node_modules”和“/usr/local/lib/node_modules”之间的区别,为什么我使用命令“npm install-g express”将其安装在第一个路径中,但我在自己的目录中,比如“/home/czhu/”。你能给我解释一下吗?你应该在项目的“根”中安装所有模块,除非该模块构建为全局模块。如果从
    npm install express
    中删除
    -g
    标志,它将安装在当前目录中,而不是
    /user/lib/node\u modules