2014-10-29 3 views
0

그래서 내가 한 번 CSV 파일 업로드 및 기록 된 인덱스로 다시 리디렉션하려고 (아 ... 나이 완료되기 전에 그것을 처리 리디렉션 ... 나) 쿼리를 처리 완료 후 리디렉션 할 수 없습니다 데이터베이스에. 나는 둘 중 하나만 할 수는 있지만 둘 다 할 수는 없습니다. 나는 모두를하려고하면, 나는노드 -

오류를 얻을 : 그들이 보낸 후 헤더를 설정할 수 없습니다.

노드가 비동기입니다. 알았다. 내가 res.redirect ('/')를 주석 처리하면; 일들이 데이터베이스에 게시됩니다. 그리고 나서 그것은 빈 화면에 매달려 있습니다.

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 인 웹 사이트에서받은 학생 데이터를 쉽게 업로드 할 수 있기를 바랍니다. 그러나 내가 원하는 것은이 쿼리를 실행하고 사용자가 자신이 있던 페이지로 리디렉션된다는 것입니다. 그렇게하는 가장 좋은 방법은 무엇입니까? 지금 비동기 모듈을 가지고 놀고 있습니다.

답변

0

당신이 당신의 쿼리 콜백의 끝에서 res.redirect('/')를 호출하면 어떻게됩니까?

+1

작동하지 않았다,하지만 그것은 제가 처음에 했어야처럼이 모든 것의 마지막에 배치되지 않은 깨닫게했다. 나는 닫는 태그의 마지막 세트 전에 res.redirect와 res.end를 붙였습니다. 이제 모든 것이 작동합니다. 고맙습니다! – user3630824