nodejs + express 웹 개발 중에 알수없는 오류가 발생합니다
조회수 1180회
nodejs 를 supervisor로 돌리고 있습니다 (console)
웹에서 게시글을 쓰는데 '등록' 버튼을 누르면 nodejs 에서 파일 업로드 기능과 mysql insert, update 기능을 해줍니다.
등록버튼을 누르면 router.post('/:professor_id/:subject_name/new', function(req, res, next) 가 실행됩니다. 코드는 다음과 같습니다
var mkdirp = require('mkdirp');
var multiparty = require('multiparty');
router.post('/:professor_id/:subject_name/new', function(req, res, next) {
var professor_id = req.params.professor_id;
var subject_name = req.params.subject_name;
var user = req.session.user;
var title;
var content;
var writer = user.account_name;
var sql = 'SELECT semester_name FROM nowsemester';
var filelist = '';
var semester_name;
con.query(sql, function(err, rows, fields) {
if (err) throw err;
semester_name = rows[0].semester_name;
mkdirp('uploads/' + semester_name + '/' + professor_id + '/' + subject_name, function(err) {
if(err) throw err;
});
var form = new multiparty.Form();
form.on('field', function(name, value) {
if (name === 'title')
title = value;
else if (name === 'content')
content = value;
});
form.on('part', function(part) {
var filename;
var size;
if (part.filename) {
filename = part.filename;
size = part.byteCount;
filelist += filename + '/';
} else
part.resume();
var writeStream = fs.createWriteStream('uploads/' + semester_name + '/' + professor_id + '/' + subject_name + '/' + filename);
writeStream.filename = filename;
part.pipe(writeStream);
part.on('end', function() {
writeStream.end();
var sql = 'INSERT INTO file (file_path) values (?)';
con.query(sql, [filelist], function(err, rows, fields) {
if (err) throw err;
});
});
});
form.on('close', function() {
var sql = 'INSERT INTO lectureboard (lecture_title, lecture_content, lecture_viewcount, professor_id, subject_name, lecture_kind, semester_name) values (?, ?, ?, ?, ?, ?, ?)';
con.query(sql, [title, content, 0, user.account_id, subject_name, 0, semester_name], function(err, rows, fields) {
if (err) throw err;
if (filelist != '') {
console.log(rows.insertId);
var sql = 'UPDATE file SET lecture_number = ? WHERE professor_id = ? AND subject_name = ? AND semester_name = ?';
con.query(sql, [rows.insertId, user.account_id, subject_name, semester_name], function(err, rows, fields) {
if (err) throw err;
console.log(rows.insertId);
var sql = 'UPDATE lectureboard SET filehave = 1 WHERE lecture_number = ? AND professor_id = ? AND subject_name = ? AND semester_name = ?';
con.query(sql, [rows.insertId, user.account_id, subject_name, semester_name], function(err, rows, fields) {
if (err) throw err;
subject_name = encodeURI(subject_name);
return res.redirect('/lecture/' + professor_id + '/' + subject_name);
});
});
}
});
});
form.parse(req);
});
});
그런데 '등록' 버튼을 누르면 'crashing child' 이라는 메시지가 console 화면에 나타납니다. 그래서 검색을 해보니 자료가 없네요... 해답을 알려주시면 감사하겠습니다..ㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력