2016-08-12 143 views
1

我想在节点上运行简单的express服务器。但是当我安装依赖时,它给了我错误的节点“无法找到明确”。NodeJS命令“npm install -g”不工作?

这里是控制台日志

[email protected] MINGW64 /f/nitishWorkspace/nitishGitRepo/chatApp (master) 
$ npm install -g express 
[email protected] C:\Users\asus\AppData\Roaming\npm\node_modules\express 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] ([email protected]) 
├── [email protected] ([email protected], [email protected]) 
├── [email protected] ([email protected]) 
├── [email protected] ([email protected], [email protected]) 
├── [email protected] ([email protected], [email protected]) 
├── [email protected] ([email protected], [email protected]) 
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected]) 

[email protected] MINGW64 /f/nitishWorkspace/nitishGitRepo/chatApp (master) 
$ node server.js 
module.js:327 
    throw err; 
    ^

Error: Cannot find module 'express' 
    at Function.Module._resolveFilename (module.js:325:15) 
    at Function.Module._load (module.js:276:25) 
    at Module.require (module.js:353:17) 
    at require (internal/module.js:12:17) 
    at Object.<anonymous> (F:\nitishWorkspace\nitishGitRepo\chatApp\server.js:1:75) 
    at Module._compile (module.js:409:26) 
    at Object.Module._extensions..js (module.js:416:10) 
    at Module.load (module.js:343:32) 
    at Function.Module._load (module.js:300:12) 
    at Function.Module.runMain (module.js:441:10) 

我认为问题就出在这些线路

[email protected] C:\Users\asus\AppData\Roaming\npm\node_modules\express 

[email protected] MINGW64 /f/nitishWorkspace/nitishGitRepo/chatApp (master) 

正如你所看到的路径是不同的在这里。我认为依赖关系正在安装在不同的目录中,并且节点无法访问它。 我该如何解决这个问题?

+1

也许会安装在您的应用程序目录中。仅当您想从命令行运行全局模块时才使用全局模块。所以,只要运行npm我表达,你会很开心。 –

回答

0

您应该安装快递locally ..做你的聊天应用npm install express ...

+0

它的工作方式,但我不想这样做。 – Neo

1

尝试安装快递到你的依赖你的package.json内

npm install --save express

如果没有package.json中,您可以使用以下命令从项目的根目录中创建一个。

npm init -y

此命令使用所有默认值,你的根目录下创建的package.json。

如果你使用:

npm init

你会被问了一连串的问题,但您可以通过编辑您的package.json后设置这些了

See the docs here for more information about package.json

For more information about setting up dependencies see this answer on SO

编辑处理意见

Regarding using globally installed dependencies see this SO q&a

+0

这又一次在node_modules文件夹中创建了一个本地依赖副本,我真的不想那样做。我只是想在全球安装它们。 – Neo

+1

请看我的编辑,希望这可以回答你的问题 – alexi2

0

你可能想安装ExpressJS CLI发电机,如果是这样的话,那么运行这个命令

npm install express-generator -g

然后您就可以类型

express my_app

创建一个内部整个结构的文件夹。然后去创建的文件夹内:

cd my_app

和类型:nam install,安装所有的依赖和自我表达。

0

所以我发现问题:问题是与PATH。该节点无法找到此路径[email protected] C:\Users\asus\AppData\Roaming\npm\node_modules\express ,因此您可以查看此 - >answer

我没有合并问题,因为这里的问题是不同的,但解决方案是相同的。

希望能解决这个问题。