首页 > 解决方案 > 当没有响应时,如何避免在 node.js / express / multer 中重新提交表单?

问题描述

我有一个问题,有时我的表单(通过 Node.Js 应用程序以标准方式提交)需要很长时间才能处理。

在后端 (app.js) 上,逻辑如下所示:

var multer = require('multer')
var storage = multer.diskStorage({
    destination: function(req, file, cb) {
        cb(null, './temp')
    },
    filename: function(req, file, cb) {
        cb(null, file.originalname)
    },
})

var upload = multer({ 
    storage: storage
})
app.post(
    '/import',
    upload.array('uploadedFiles', 50),
    imports.submit
)

那么接下来会发生 POST 请求再次发生(可能在没有收到任何响应之后)并且文件被重新提交。我的日志显示/POST --/--

我怎样才能避免发生这种情况?

我尝试使用以下代码:

 

        $('#submitform').on('submit', function(e){

            e.preventDefault();   
            

            $(this).find('input[type=submit]').attr('disabled', 'disabled');
            $('#message').html('Importing the data');
            
            $("#submitform").unbind('submit').submit()
            

        });

但它根本不提交表单。

我该如何解决这个问题?

我不能使用 AJAX 作为从 node.js 应用程序获得的响应,因为我必须重写太多后端。

标签: javascriptjquerynode.jsexpressmulter

解决方案


推荐阅读