我编写了我的第一个node.js应用程序,但它找不到快速库:
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)
但是快速安装(使用-g
密钥):
C:\ChatServer\Server>npm install -g express
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/connect/2.7.11
npm http GET https://registry.npmjs.org/commander/0.6.1
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.4
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/send/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.1
npm http GET https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/mkdirp/0.3.4
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http 304 https://registry.npmjs.org/connect/2.7.11
npm http 304 https://registry.npmjs.org/commander/0.6.1
npm WARN package.json range-parser@0.0.4 No repository field.
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/fresh/0.1.0
npm http 304 https://registry.npmjs.org/methods/0.0.1
npm http 304 https://registry.npmjs.org/send/0.1.0
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.1
npm WARN package.json methods@0.0.1 No repository field.
npm WARN package.json methods@0.0.1 No readme data.
npm WARN package.json fresh@0.1.0 No repository field.
npm WARN package.json send@0.1.0 No repository field.
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm http 304 https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/mime/1.2.6
npm http GET https://registry.npmjs.org/qs/0.6.5
npm http GET https://registry.npmjs.org/send/0.1.1
npm http GET https://registry.npmjs.org/formidable/1.0.14
npm http GET https://registry.npmjs.org/cookie/0.0.5
npm http GET https://registry.npmjs.org/bytes/0.2.0
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http 304 https://registry.npmjs.org/mime/1.2.6
npm http 304 https://registry.npmjs.org/bytes/0.2.0
npm WARN package.json bytes@0.2.0 No repository field.
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm WARN package.json pause@0.0.1 No repository field.
npm http 304 https://registry.npmjs.org/formidable/1.0.14
npm http 304 https://registry.npmjs.org/qs/0.6.5
npm http 304 https://registry.npmjs.org/send/0.1.1
npm http 304 https://registry.npmjs.org/cookie/0.0.5
npm http GET https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/mime
C:\Users\Dmitry\AppData\Roaming\npm\express -> C:\Users\Dmitry\AppData\Roaming\npm\node_modules\express\bin\express
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 assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.
express@3.2.6 C:\Users\Dmitry\AppData\Roaming\npm\node_modules\express
├── methods@0.0.1
├── fresh@0.1.0
├── range-parser@0.0.4
├── cookie-signature@1.0.1
├── buffer-crc32@0.2.1
├── cookie@0.1.0
├── debug@0.7.2
├── commander@0.6.1
├── mkdirp@0.3.4
├── send@0.1.0 (mime@1.2.6)
└── connect@2.7.11 (pause@0.0.1, qs@0.6.5, bytes@0.2.0, cookie@0.0.5, formidable@1.0.14, send@0.1.1)
一些信息:
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
?)
答案 0 :(得分:238)
您需要在本地安装Express到应用程序的上下文(node_modules
文件夹):
$ npm install express
这样做的原因是应用程序始终在其本地上下文中查找任何依赖项。全局安装仅用于设置系统范围的可用二进制文件,例如单元测试运行程序或引导程序或类似的东西。
使用Express,当您在全局安装它时,您将获得一个express
二进制文件,可以为您启动应用程序。有关更多信息,请键入
$ express --help
因此,要回答您的最后一个问题:是,您需要在没有-g
的情况下安装它。
答案 1 :(得分:17)
对我来说,当使用--save选项在本地安装表达时,它可以工作如下:
$ npm install express --save
答案 2 :(得分:10)
检查您是否未安装express
模块,请使用以下命令:
npm install express
如果您的node_modules
目录位于其他位置,请设置NODE_PATH
环境变量:
set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%
答案 3 :(得分:5)
/usr/local/lib/node_modules
当你启动节点blabla.js时,会在
中搜索模块/lib
因此,解决方案是创建符号链接:
sudo ln -s /usr/local/lib/node_modules/ /lib/node_modules
答案 4 :(得分:4)
在您的情况下,express
模块安装在C:\Users\Dmitry\AppData\Roaming\npm\node_modules\express
,但您需要将此模块放入项目目录中。因此,您应将express
模块文件夹中的C:\Users\Dmitry\AppData\Roaming\npm\node_modules\
模块文件夹复制到项目目录中:C:\ChatServer\Server\node_modules
。如果您没有名为&#39; node_modules&#39;的文件夹。在项目文件夹中,然后首先创建它并将这些文件粘贴到此文件夹中。这个方法适用于我的Windows PC。重新启动节点服务器,再次运行命令节点C:\ChatServer\Server>node server.js
。它现在应该工作!!!!
答案 5 :(得分:2)
在基于Ubuntu的操作系统上,您可以尝试
sudo apt-get install node-express
它在Mint为我工作
答案 6 :(得分:2)
假设您已在系统上安装了 node ,请使用以下Windows为您的项目在本地安装Express:
npm install express
或强>
npm install express --save
您可以使用以下方式为其提供全局访问权限:
npm install -g express --save
答案 7 :(得分:2)
我在vscode中遇到此错误,尽管已安装的模块。我正在使用打字稿和快递。在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"
]
}
答案 8 :(得分:1)
在硬盘中创建一个文件夹,例如sample1,然后转到命令提示符,键入:cd并给出sample1文件夹的路径,然后安装所有模块......
npm install express
npm install jade
npm install socket.io
然后在sample1文件夹中创建应用程序保存的任何内容
尝试一下......
答案 9 :(得分:1)
转到您的应用程序目录并使用以下命令安装express模块 npm install express --save 然后使用以下命令列出所有安装模块 npm ls 您将看到所有本地安装的模块。
答案 10 :(得分:1)
在全球范围内安装Express不适用于您的本地项目,因此您需要在本地安装它才能使用。
let test = encodeURIComponent(result.response);
console.log(test);
let img = "data:image/png;base64," + btoa(test);
vm.billData.image = img;
希望这会起作用
谢谢
答案 11 :(得分:0)
我遇到了同样的问题。我在/ usr / local / bin /全局安装了快速安装。当我执行“npm install”时,未在本地目录的node_modules中创建express。
答案 12 :(得分:0)
这对我有用 MacOS X Sierra
答案 13 :(得分:0)
我并不为此感到自豪,但就我而言,我有:
require('express.handlebars')
//and the correct form is:
require('express-handlebars'); //Use dash instead.
答案 14 :(得分:0)
在本书中的示例之后,我遇到了相同的错误:“ Kubernetes Up&Running”。
我看到许多答案建议“手动”安装 express ,但我不认为这是最好的解决方案。
因为我们使用的是 package.json (我可以在日志中看到它),并且构建应用的正确方法正在运行npm install
,所以我添加了 express package.json 文件中的依赖项。
"dependencies": {
"express": "^4.17.1"
}
我使用npm search express
获得了当前版本。
答案 15 :(得分:0)
1.首先检查express是否安装在正确的位置。 2. npm install express(运行此命令)。 3. express 将保存在您的“node_modules”文件夹下