Node.js错误:找不到module express
我编写了第一个node.js应用程序,但找不到express library:Node.js错误:找不到module express,node.js,express,npm,Node.js,Express,Npm,我编写了第一个node.js应用程序,但找不到express library: C:\ChatServer\Server>node server.js module.js:340 throw err; ^ Error: Cannot find module 'express' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (modu
C:\ChatServer\Server>node server.js
module.js:340
throw err;
^
Error: Cannot find module 'express'
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> (C:\ChatServer\Server\server.js:6:9)
at Object.<anonymous> (C:\ChatServer\Server\server.js:25:4)
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)
一些信息:
C:\ChatServer\Server>npm --version
1.2.24
C:\ChatServer\Server>node --version
v0.10.9
C:\ChatServer\Server>npm --version
1.2.24
C:\ChatServer\Server>npm ls -g installed express
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm WARN package.json fresh@0.1.0 No repository field.
npm WARN package.json methods@0.0.1 No repository field.
npm WARN package.json range-parser@0.0.4 No repository field.
npm WARN package.json send@0.1.0 No repository field.
npm WARN package.json policyfile@0.0.4 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json bytes@0.2.0 No repository field.
npm WARN package.json pause@0.0.1 No repository field.
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.
C:\Users\Dmitry\AppData\Roaming\npm
└── express@3.2.6
C:\ChatServer\Server>npm ls installed express
C:\ChatServer\Server
└── (empty)
我怎样才能解决这个问题?(必须我安装它时没有
-g
?)您需要将Express本地安装到应用程序的上下文中(节点模块
文件夹):
原因是应用程序总是在其本地上下文中查找任何依赖项。全局安装仅用于设置系统范围内可用的二进制文件,如单元测试运行程序或引导程序等
使用Express,当您全局安装它时,您会得到一个Express
二进制文件,可以为您引导应用程序。有关详细信息,请键入
$ express --help
因此,为了回答您的最后一个问题:是的,您需要在没有
-g
的情况下安装它。您已经很好地解释了解决方案,但我可能需要补充一点说明:有时节点模块安装在
/usr/local/lib/node_modules
当您启动节点时,blabla.js模块将在中搜索
/lib
因此,解决方案是创建一个符号链接:
sudo ln -s /usr/local/lib/node_modules/ /lib/node_modules
检查是否未安装
express
模块,请使用以下命令:
npm install express
如果您的node\u模块
目录位于另一个位置,请设置node\u路径
Environment变量:
set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%
在硬盘中创建一个文件夹,例如sample1,然后转到命令提示符键入:cd并给出sample1文件夹的路径,然后安装所有模块 npm安装快车 npm安装jade npm安装socket.io 然后将创建的应用程序保存在sample1文件夹中
试试看…在您的情况下,您的
express
模块安装在C:\Users\Dmitry\AppData\Roaming\npm\node\u modules\express
,但您需要将此模块放入项目目录中。因此,您应该将express
模块文件夹中的文件从C:\Users\Dmitry\AppData\Roaming\npm\node\u modules\
复制到项目目录中:C:\ChatServer\Server\node\u modules
。如果项目文件夹中没有名为“node_modules”的文件夹,请先创建该文件夹并将这些文件粘贴到此文件夹中。此方法在我的windows pc上适用。请重新启动节点服务器,然后再次运行命令nodeC:\ChatServer\server>node server.js
。现在应该可以用了 对我来说,在本地安装express时,使用--save选项可以工作,如下所示:
$ npm install express --save
在基于Ubuntu的操作系统上,你可以试试
sudo apt-get install node-express
它在Mint上对我有效如果您已经在系统上安装了node,请使用以下Windows版本在本地为您的项目安装Express:
npm install express
或
npm install express --save
您可以通过以下方式为其提供全局访问权限:
npm install -g express --save
我遇到了同样的问题。我已在/usr/local/bin/全局安装了express。当我执行“npm安装”时,express不是在本地目录的节点_模块中创建的
- sudo-brew卸载节点
- brew更新
- brew升级
- brew清理
- brew安装节点
- sudo chown-R$(whoami)/usr/本地
- brew链接--覆盖节点
- sudo brew后安装节点
这对我在MacOS X Sierra上起到了作用转到您的应用程序目录,使用下面的命令安装express模块 npm安装快捷版--保存 然后使用下面的命令列出所有安装模块 npm ls
您将看到所有本地安装的模块。我在vscode中遇到了这个错误,尽管模块安装在哪里。我正在使用打字脚本和express。在
server.ts
文件中,所有导入的文件都有红色的扭曲下划线。原来我有一个错误的tsconfig.json
文件
{
"compileOnSave": false,
"compilerOptions": {
"module": "commonjs", // Previously this value was `es6`
"target": "es6",
"allowSyntheticDefaultImports": true,
"baseUrl": "public",
"sourceMap": true,
"outDir": "dist",
"jsx": "react",
"strict": true,
"preserveConstEnums": true,
"removeComments": true,
"noImplicitAny": true,
"allowJs": true
},
"exclude": [
"node_modules",
"build"
]
}
我不以分享这一点为荣,但就我而言,我有:
require('express.handlebars')
//and the correct form is:
require('express-handlebars'); //Use dash instead.
全局安装express在本地项目上不起作用,因此您需要在本地安装它以供使用
npm install express
希望这能奏效
谢谢我在这本书的例子“Kubernetes Up&Running”中遇到了同样的错误。
我看到许多答案建议“手动”安装express,但我不认为这是最好的解决方案。
因为我们使用的是package.json(我可以在日志中看到),而构建应用程序的正确方法是运行
npm install
,所以我在package.json文件中添加了快速依赖项
"dependencies": {
"express": "^4.17.1"
}
我使用npm search express获得当前版本。首先检查express是否安装在正确的位置。 2.npm install express(运行此命令)。
3.express将保存在您的“node_modules”文件夹下可能重复的可能重复的可能重复的可能重复的这对我也有帮助。我在全球安装了
winston
,在以普通用户身份启动我的应用程序时,出于某种原因,它起作用了,但在启动我的应用程序和系统初始化脚本时,它就不起作用了。我通过在应用程序目录中本地安装winston(并将其添加到package.json)修复了它。您可以通过cd将全局安装的依赖项链接到项目根目录,然后在创建应用程序后使用“npm link”npm install。它将安装所有依赖项。谢谢这真的很有帮助。转到node_modules文件夹,然后安装express解决了我的问题problem@GoloRoden根据你的回答,我尝试了你的解决方案,但它抛出了一个错误:“npm ERR!tar.unpack untar错误C:\Users\VV\AppData\Roaming\npm cache\express\4.14.0\package.tgz npm ERR!Windows\u NT 6.3.9600 npm错误!argv“C:\\Program Files\\nodejs\\\node.exe”C:\\Program Files\\nodejs\\node\u modules\\npm\\bin\\npm cli.js“install”“express”easer way->npm link在windows 10上也能工作!在Windows 10中,在npm安装express之后,它无法自动添加到
npm install express
"dependencies": {
"express": "^4.17.1"
}