Nodejs npm install -g formidable 不成功,怎么回事啊,在win7上装的
Nodejs npm install -g formidable 不成功,怎么回事啊,在win7上装的
添加: var formidable = require(‘formidable’); 之后:
module.js:340 throw err; ^ Error: Cannot find module 'formidable’ 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> (D:\node\test\server.js:5:18) 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) at Module.require (module.js:364:17)
针对你提到的问题,“Nodejs npm install -g formidable 不成功”,看起来你在尝试全局安装 formidable
模块时遇到了问题。让我们一起来解决这个问题。
1. 确认 Node.js 和 npm 的版本
首先,确保你的 Node.js 和 npm 版本是最新的。打开命令提示符(CMD),输入以下命令:
node -v
npm -v
如果版本过低,建议更新到最新版本。
2. 尝试重新安装 formidable
有时候全局安装可能会失败,可以尝试重新安装:
npm uninstall -g formidable
npm install -g formidable
3. 检查环境变量
确保你的系统环境变量中包含了 Node.js 和 npm 的路径。这通常在安装过程中会自动完成,但有时可能需要手动配置。
- 打开“我的电脑” -> 右键选择“属性” -> “高级系统设置” -> “环境变量”
- 在“系统变量”中找到
Path
变量,确保它包含了 Node.js 的安装路径(例如C:\Program Files\nodejs
)
4. 使用管理员权限运行命令提示符
有时候权限不足也会导致安装失败,尝试以管理员身份运行命令提示符再执行安装命令:
- 右键点击命令提示符图标 -> 选择“以管理员身份运行”
5. 检查全局安装路径
确认全局模块被安装到了哪里。你可以通过以下命令查看:
npm config get prefix
确保该路径在你的环境变量中。
6. 如果仍然无法解决问题
如果上述步骤都无法解决问题,可能是因为网络原因或者 npm 配置问题。你可以尝试使用淘宝镜像源来安装:
npm config set registry https://registry.npm.taobao.org
npm install -g formidable
希望这些步骤能帮助你解决问题!
windows 下我建议用到的模块都安装到项目目录下… 原因如下:
基于 node 的node_modules 的搜索模式,默认的node_modules 几乎搜索不到…而且,windows 还有分区…
好
formidable 已经被包括在了express中了。你还安装它做什么? 直接:req.form 就可以取到form提交的input内容。
好像从某个版本开始global的module都不能直接用了把。 必须npm link一下
从guithub上将gz包下载下来,解压缩后拷到node_modules里使用即可。
全局安装的库,需要npm link一下,才能require的
在安装 formidable
模块时遇到的问题可能是因为全局安装路径没有正确配置或者权限问题。以下是一些可能的解决方案:
-
使用管理员权限运行命令提示符: 确保以管理员身份运行命令提示符,这可以解决权限不足的问题。
npm install -g formidable
-
检查全局安装路径: 确认全局安装路径是否包含在环境变量中。可以通过以下命令查看全局模块安装路径:
npm config get prefix
然后确保该路径包含在系统的
PATH
环境变量中。 -
重新安装 Node.js 和 npm: 如果上述方法无效,可以尝试重新安装 Node.js 和 npm,确保它们是最新的版本。
如果仍然无法解决问题,可以尝试局部安装 formidable
:
npm install formidable
然后在代码中引用:
var formidable = require('formidable');
确保你的文件路径是正确的,并且文件编码也是 UTF-8 格式。如果你看到错误信息中的引号不是标准的英文引号(例如:‘和’),请将它们替换为标准的英文引号('
)。
示例代码
var http = require('http');
var formidable = require('formidable');
http.createServer(function(req, res) {
if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files) {
res.writeHead(200, {'content-type': 'text/plain'});
res.write('received upload:\n\n');
res.end(util.inspect({fields: fields, files: files}));
});
} else {
res.writeHead(200, {'content-type': 'text/html'});
res.end(
'<form action="/upload" enctype="multipart/form-data" method="post">'+
'<input type="text" name="title"><br>'+
'<input type="file" name="upload" multiple="multiple"><br>'+
'<input type="submit" value="Upload">'+
'</form>'
);
}
}).listen(3000);
这段代码创建了一个简单的 HTTP 服务器,用于处理文件上传。确保 formidable
模块已正确安装并引用。