Node.js 强大的上传文件不会触发 开发和测试环境: Windows 8 64位 安装的节点版本为0.10.5 npm版本1.2.18 快速框架 用于文件上传的强大模块 Firefox和Internet Explorer浏览器

Node.js 强大的上传文件不会触发 开发和测试环境: Windows 8 64位 安装的节点版本为0.10.5 npm版本1.2.18 快速框架 用于文件上传的强大模块 Firefox和Internet Explorer浏览器,node.js,express,image-uploading,formidable,Node.js,Express,Image Uploading,Formidable,HTML代码: <form id="caricaMasterImg" method="post" enctype="multipart/form-data" action="/image/upload"> <input type="file" id="masterImg" name="masterImg" value="Sfoglia" accept="image/*"/> <input type="submit" value="carica" i

HTML代码:

<form id="caricaMasterImg" method="post" enctype="multipart/form-data" action="/image/upload"> 
    <input type="file" id="masterImg" name="masterImg" value="Sfoglia" accept="image/*"/>
    <input type="submit" value="carica" id="submitLoadImg" />
</form>
routes/image.js代码:

exports.upload = function(req, res){
    var form = new formidable.IncomingForm();
    form.uploadDir =  path.join(__dirname, 'tmp');
    console.log('Upload directory is: '+form.uploadDir);
    fs.exists(form.uploadDir, function (exists) {
        console.log('is an existing directory? '+exists);
    });
    form.parse(req, function(err, fields, files) {
        console.log(fields);
        console.log(files);
    }); 
};
问题是: 单击submit按钮时,我希望看到使用console.logfiles指令记录的文件。日志写入:

上载目录为:C:\Liber-I\app\FileSystemManager\routes\tmp 是现有目录吗?真的

在应用程序控制台上几分钟内不再写入日志。
我测试的情况下,没有提交文件,它似乎是采取同样的行动!这是一个太奇怪的行为,不会成为一个nodejs问题,我哪里做错了?

我想我没有做错什么。事实是我无法解决这个问题,所以我决定好好解决一下。我选择用于文件上传,效果非常好。

不熟悉Forweible,但为什么不使用connect multiparty或connect busboy,因为express正式支持它们:在/image/upload路由之前,您使用的是什么中间件?@mscdex我想我在/image/upload之前没有使用其他中间件,但我不确定我是否正确地理解了你的问题。@Jordonias我接受了你的建议,并尝试使用“连接多方”。我需要进一步测试我的代码,但现在上传的文件作为JSON对象记录在我的路由函数中,正如预期的那样,被物理上传到默认的上传文件夹中。我想设置一个不同的上传目录:var myPath=path.join_uudirname,“/tmp”;var multipart=需要“连接多方”;var multipartMiddleware=multipart{uploadDir:myPath};但是默认的文件夹仍然被使用,我的意思是,在路由之前,你必须使用某种支持多部分的身体解析中间件。
exports.upload = function(req, res){
    var form = new formidable.IncomingForm();
    form.uploadDir =  path.join(__dirname, 'tmp');
    console.log('Upload directory is: '+form.uploadDir);
    fs.exists(form.uploadDir, function (exists) {
        console.log('is an existing directory? '+exists);
    });
    form.parse(req, function(err, fields, files) {
        console.log(fields);
        console.log(files);
    }); 
};