node.js 파일 업로드, mysql에 경로 넣기

조회수 3216회

안녕하세요.

제가 최근에 node.js 로 파일 업로드 기능을 구현하고 있는데요.

폴더 안에 파일을 업로드 시키는 것까지는 완료했는데, 값을 가져와 다른 곳에서 표현하려고 mysql 테이블 내에 경로를 지정시킨 후에 불러오려고 합니다.

근데, 순 초보자다 보니까.. 어떻게 mysql 내에 접목을 시켜야할지 몰라서요 ㅠ.


app.get('/photo', function(req, res){

//photo.html
  res.sendFile(path.join(__dirname, 'views/photo.ejs'));

});

app.post('/upload', function(req, res){

  // 오브젝트 폼 생성
  var form = new formidable.IncomingForm();

  // 단순 요청으로 다중 파일 업로드
  form.multiples = true;

  // 파일이 저장될 경로
  form.uploadDir = path.join(__dirname, '/public/uploads');

  // 파일 경로 위치에 파일을 전송
  // 파일 이름을 현재 시간에 붙여 재작성
  form.on('file', function(field, file) {
    fs.rename(file.path, path.join(form.uploadDir, Date.now()+ file.name));
  });

  // 문제시 에러 발생
  form.on('error', function(err) {
    console.log('An error has occured: \n' + err);
  });

  // 파일 업로드 후, 성공 여부를 클라이언트에게 보냄.
  form.on('end', function() {
    res.end('success');
  });

  // 데이터 요청(parse)
  form.parse(req);

});
});

일단 제 생각에 따라 단순하게 짜봤는데요.

var db = mysql.createConnection({ // 회원가입 db
  host : 'localhost',
  user : 'wow',
  password : '1234', // input mysql password
  database : 'userinfo',      // input database name
  port : 3306      // m
});
...................................................
app.post('/upload', function(req, res){

....
...
..
.

  var m_id = req.body.m_id; // 이미지를 올릴 사용자
  var m_file = uploadDir; // 파일 업로드 경로
  var sql =  'update users set m_file =? where m_id = ?';
  db.query(sql, [m_id], function(err, file) {
    if (err) console.error("err : " + err);
    console.log("file : " + JSON.stringify(file));

  });
});

역시나 돌아가지 않더군요 ㅠ. 혹시 방법을 아시는 분들이 계시다면 조언좀 주셨으면 좋겠습니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)