node.js - 节点给出错误:“模块未找到”,即使在安装后也是如此
问题描述
我正在尝试在节点上运行此脚本,除了标准库之外,它还需要模块:多方
var multiparty = require('multiparty');
var http = require('http');
var util = require('util');
http.createServer(function(req, res) {
if (req.url === '/upload' && req.method === 'POST') {
// parse a file upload
var form = new multiparty.Form();
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 }));
});
return;
}
// show a file upload form
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(8080);
我使用的脚本是多方文档给出的官方示例。由于我在节点的 REPL 模式下运行此脚本,因此我决定首先使用此命令全局安装多方
npm install -g multiparty
该模块已安装,之后我尝试在节点上运行它,但上传文件时出现以下错误,即localhost:8080/upload
Uncaught TypeError : Cannot read property 'Form' of undefined
我还尝试使用以下命令安装多方
npm install multiparty
但错误仍然存在。
解决方案
我查看了NPM 全局安装“找不到模块”中的答案,并意识到我的环境变量NODE_PATH
没有设置,应该设置为C:\Users\%USER_PROFILE%\AppData\Roaming\npm\node_modules
推荐阅读
- outlook-addin - UI.displayDialogAsync() 在 Outlook 2013 中不起作用
- batch-file - 尝试在 Windows 查看器中批量打开所有 .png 文件
- angular - Cache-Control 在 Angular cli 中不起作用
- ios - 允许后,Google 登录重定向到 google.com 而不是应用程序
- .net - EF Core + npgsql DateTime 使用 windows 10 本地化进行格式化
- facebook - 在最新政策更改后,我的应用是否允许使用 API 作为 Facebook 页面发布而无需人工交互?(自 2018 年 4 月 24 日起)
- angular - 从 Angular 中的 Firebase 存储获取下载 URL
- node.js - 地址栏 url 在刷新页面时被附加到请求的静态资源中,如何处理?
- python - 使用 groupby 和 loc 建立一个新的数据框
- javascript - 无法读取未定义的属性 parentNode