방명록
- [Node.js][유튜브 강의 노트] 개발자의품격_한시간만에 끝내는 Node.js 입문 #22021년 11월 22일 14시 40분 33초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
학습내용
1. 강의영상
유튜버 개발자의 품격님의 "한시간만에 끝내는 Node.js입문" 강의 내용의 나머지 파트로서,
html 라우팅과 db연동에 대한 내용을 정리한다.
2. index.html 작성
<!-- index.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>Welcome to My Homepage</h1> <table> <tr> <td>AAAA</td> <td>BBBB</td> </tr> </table> </body> </html>
3. about.html 작성
<!-- about.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>About Page</h1> </body> </html>
4. server.js 작성
npm을 이용해 필요한 패키지 설치 해야한다.
해당 패키지는 server.js 코드의 주석에 표기하였다.
// server.js const express = require('express'); const app = express(); const server = app.listen(3000, () => { console.log('Start Server : localhost:3000'); }); // views 폴더, 엔진 설정 // ejs설치: npm install ejs --save app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); // ejs는 html에서 자바스크립트를 사용할 수 있게하는 템플릿 app.engine('html', require('ejs').renderFile); // html 연결 // https://expressjs.com/ko/guide/routing.html app.get('/', function(req, res) { // res.send('hello world'); res.render('index.html') }); app.get('/about', function(req, res) { // res.send('about page'); res.render('about.html') }); // mysql 연동(실습에서는 mariadb를 연동 했다) // mysq 설치: npm install mysql --save // https://www.npmjs.com/package/mysql var mysql = require('mysql'); var pool = mysql.createPool({ connectionLimit: 10, host: 'localhost', user: 'root', // port: 3306, password: '1234', database:"mydb" }); app.get('/db', function(req, res) { pool.getConnection(function(err, connection) { if (err) throw err; // not connected! // Use the connection connection.query('SELECT * from user', function (error, results, fields) { res.send(JSON.stringify(results)); console.log('result', results); // When done with the connection, release it. connection.release(); // Handle error after the release. if (error) throw error; // Don't use the connection here, it has been returned to the pool. }); }); });
5. pool is not defined 에러
db연동시 매우 괴롭게 했던 에러였다.
https://www.npmjs.com/package//mysql#install
위 링크에서 필요한 코드를 가져와서 사용할 때,
Pooling connections의 코드를 가져와야하는데,
더보기var mysql = require('mysql');var pool = mysql.createPool({connectionLimit : 10,host : 'example.org',user : 'bob',password : 'secret',database : 'my_db'});Introduction의 코드를 사용하는 바람에 경험한 에러이다.
더보기var mysql = require('mysql');var connection = mysql.createConnection({host : 'localhost',user : 'me',password : 'secret',database : 'my_db'});
학습소감
nodemailer, 라우팅, db연동을 학습 하면서 Node.js를 살짝 맛보았다.
pool is not defined 에러 덕분에 한시간이 아니라 하루의 학습시간이 필요했지만,
문제를 해결한 후의 쾌감은 삽질(?)의 고통 보다 컸다!
이번 강의에서는 db가 준비되었다고 보고 진행한다.
만약 사전에 준비된 db가 없다면,
이 강의를 완전히 학습할 수는 없다!
개발자의 품격님의 강의는 간결하고 핵심이 명확하다!
728x90반응형'언어·프레임워크 > Node.js' 카테고리의 다른 글
[Node.js] Swagger을 이용한 API 문서 생성 (0) 2024.01.24 [Node.js][Trouble Shooting] sqlMessage: "Access denied for user 'root'@'localhost' (using password: NO)" (0) 2022.10.08 [Node.js] [문제해결] Vue.js에서 마이크로소프트 액세스 mdb 파일을 읽어 오려다가... SyntaxError (0) 2022.05.25 [Node.js][유튜브 강의 노트] 개발자의품격_Node.js에서 API 서버 만들기 (0) 2021.11.28 [Node.js][유튜브 강의 노트] 개발자의품격_한시간만에 끝내는 Node.js 입문 #1 (0) 2021.11.22 다음글이 없습니다.이전글이 없습니다.댓글