mysql - Node - 查询处理完成后无法重定向(或者在处理完成之前重定向......或者......啊)

标签 mysql node.js redirect

因此,一旦 CSV 文件上传并写入数据库,我就会尝试重定向回索引。我可以做其中之一,但不能两者都做。如果我两者都尝试,我会得到

错误:发送后无法设置 header 。

好的,Node 是异步的。知道了。如果我注释掉 res.redirect('/');事情被发布到数据库中。然后它卡在空白屏幕上......不,bueno。这是我的代码:

app.post('/upload', function(req,res){
    form.parse(req, function(err, fields, files){
        var path = files['file'][0]['path'];
        var reader = csv.createCsvFileReader(path, {
            'separator': ',',
            'quote': '"',
            'excape': '"',
            'comment': ''
        });
        reader.addListener('data',function(data){
            console.log(data);
            var into = 'import';
            var query = 'INSERT INTO ?? SET student_fname = "' + data[1] + '", student_lname = "' + data[2] + '", student_id = "' + data[4] + '", school_id = "' + data[3] +'", homeroom_id = "'+data[5] +'"';
            connection.query(query, [into],
                function(err, rows){
                    if (err) console.log(err);
                    console.log(rows);
                }
            );         
            //res.redirect('/');
            res.end();
        });

    });

});

所以首先我知道可能有更优雅的方法来做到这一点,并且我当然愿意接受这方面的建议。我们使用的是 mysql 数据库,我们只是希望教师能够轻松上传他们从我们无法访问的 api 网站收到的学生数据。但假设我想要发生的只是运行此查询并将用户重定向回他们所在的页面,那么最好的方法是什么?现在我正在使用异步模块。

最佳答案

如果您在查询回调结束时调用 res.redirect('/') 会发生什么?

关于mysql - Node - 查询处理完成后无法重定向(或者在处理完成之前重定向......或者......啊),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26640106/

相关文章:

php - SQL 语法错误。看起来我想念什么

mysql - SQL插入如果缺少值

javascript - 变量不会在全局上下文中注册,为什么?

asp.net-mvc - IIS7 网址重写 - 从 {any}.aspx 重定向到 {any}

mysql - ALTER VIEW 仅为一个 View 插入数据库前缀

c# - EF v1 的加载行为?

node.js - 如何访问 package.json 配置部分?

javascript - 将 csv 转换为 json 返回空 json 文件

redirect - Cloudflare 将所有内容从 domain1.com 重定向到 domain2.com

redirect - 如何在切诺基中重定向端口?