1. Mysql를 이용해서 사용자 추가
// 사용자 추가 라우팅 함수
router.route('/process/adduser').post(function(req, res) { console.log('/process/adduser 호출됨.'); var paramId = req.body.id || req.query.id; var paramPassword = req.body.password || req.query.password; var paramName = req.body.name || req.query.name; var paramAge = req.body.age || req.query.age;
console.log('요청 파라미터 : ' + paramId + ', ' + paramPassword + ', ' + paramName + ', ' + paramAge);
// pool 객체가 초기화된 경우, addUser 함수 호출하여 사용자 추가 if (pool) { addUser(paramId, paramName, paramAge, paramPassword, function(err, addedUser) { // 동일한 id로 추가하려는 경우 에러 발생 - 클라이언트로 에러 전송 if (err) { console.error('사용자 추가 중 에러 발생 : ' + err.stack);
res.writeHead('200', {'Content-Type':'text/html;charset=utf8'}); res.write('<h2>사용자 추가 중 에러 발생</h2>'); res.write('<p>' + err.stack + '</p>'); res.end();
return; }
// 결과 객체 있으면 성공 응답 전송 if (addedUser) { console.dir(addedUser); console.log('inserted ' + result.affectedRows + ' rows');
var insertId = result.insertId; console.log('추가한 레코드의 아이디 : ' + insertId);
res.writeHead('200', {'Content-Type':'text/html;charset=utf8'}); res.write('<h2>사용자 추가 성공</h2>'); res.end(); } else { res.writeHead('200', {'Content-Type':'text/html;charset=utf8'}); res.write('<h2>사용자 추가 실패</h2>'); res.end(); } }); } else { // 데이터베이스 객체가 초기화되지 않은 경우 실패 응답 전송 res.writeHead('200', {'Content-Type':'text/html;charset=utf8'}); res.write('<h2>데이터베이스 연결 실패</h2>'); res.end(); }
}); |
서버가 시작되었습니다. 포트 : 3000 /process/adduser 호출됨. 요청 파라미터 : MK2, 123456, 미스터M2, 21 addUser 호출됨 : MK2, 123456, 미스터M2, 21 데이터베이스 연결 스레드 아이디 : 10 실행 대상 SQL : insert into users set `id` = 'MK2', `name` = '미스터M2', `age` = '21', `password` = '123456' OkPacket { fieldCount: 0, affectedRows: 1, insertId: 0, serverStatus: 2, warningCount: 0, message: '', protocol41: true, changedRows: 0 } C:\NodeJS_Book\brackets-nodejs\DatabaseExample\node_modules\mysql\lib\protocol\Parser.js:80 throw err; // Rethrow non-MySQL errors ^ ReferenceError: result is not defined at C:\NodeJS_Book\brackets-nodejs\DatabaseExample\app8.js:168:31 at Query.<anonymous> (C:\NodeJS_Book\brackets-nodejs\DatabaseExample\app8.js:271:10) at Query.<anonymous> (C:\NodeJS_Book\brackets-nodejs\DatabaseExample\node_modules\mysql\lib\Connection.js:502:10) at Query._callback (C:\NodeJS_Book\brackets-nodejs\DatabaseExample\node_modules\mysql\lib\Connection.js:468:16) at Query.Sequence.end (C:\NodeJS_Book\brackets-nodejs\DatabaseExample\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24) at Query._handleFinalResultPacket (C:\NodeJS_Book\brackets-nodejs\DatabaseExample\node_modules\mysql\lib\protocol\sequences\Query.js:139:8) at Query.OkPacket (C:\NodeJS_Book\brackets-nodejs\DatabaseExample\node_modules\mysql\lib\protocol\sequences\Query.js:72:10) at Protocol._parsePacket (C:\NodeJS_Book\brackets-nodejs\DatabaseExample\node_modules\mysql\lib\protocol\Protocol.js:278:23) at Parser.write (C:\NodeJS_Book\brackets-nodejs\DatabaseExample\node_modules\mysql\lib\protocol\Parser.js:76:12) at Protocol.write (C:\NodeJS_Book\brackets-nodejs\DatabaseExample\node_modules\mysql\lib\protocol\Protocol.js:38:16) |
INSERT 데이터는 입력은 되지만 다음으로 진행이 안됨 console.log('inserted ' + addedUser.affectedRows + ' rows'); var insertId = addedUser.insertId; 로 변경하면 정상동작됨 |
'WEB > Node JS' 카테고리의 다른 글
Nodejs기초 - 11일차 정리(Semantic UI 활용, MVC패턴, 응답 페이지 모듈화[ejs]) (0) | 2019.01.26 |
---|---|
Nodejs기초 - 10일차 정리(Require 이해, 모듈화분리 패턴) (0) | 2019.01.24 |
8일차 정리 (0) | 2019.01.12 |
7일차 정리 (0) | 2019.01.11 |
6일차 정리 (0) | 2019.01.03 |