hyunjong

프로젝트 진행하기 전 코드를 위해하기위한 주석달기

1 +/*
2 +bin - 이 폴더 안에는 www.js 파일이 잇으며 www.js는 http 서버를 구동시키는 로직이 들어있다.
3 +
4 +node_modules - 모듈들이 설치되는 공간
5 +
6 +public - http 서버의 root 폴더고 stylesheets나 images 같은 데이터를 저장할 때 사용한다.
7 +
8 +routes - 라우팅을 해주는 역할, 주소를 입력했을 때 어디로 연결해 줄지 결정해주는 javaScript 파일들을 모아놓는 곳입니다.
9 +
10 +views - 웹 브라우져에 보여질 디자인을 작성하는 곳이다
11 +*/
12 +
13 +// http웹 서버 구조를 쉽게 만들 수 있도록 도와주는 프레임워크
1 var express = require('express'); 14 var express = require('express');
15 +var session = require('express-session');
16 +
17 +// 폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈, https://horajjan.blog.me/221337515650
2 var path = require('path'); 18 var path = require('path');
19 +
20 +// favorites icon의 약자로 웹페이지나 웹사이트를 대표하는 아이콘
3 var favicon = require('serve-favicon'); 21 var favicon = require('serve-favicon');
22 +
23 +// 웹 요청에 대해 로그를 출력하는 미들웨어, 외부 모듈이기 때문에 별도로 설치해서 사용
4 var logger = require('morgan'); 24 var logger = require('morgan');
25 +
26 +// 쿠키를 제어하는 모듈
5 var cookieParser = require('cookie-parser'); 27 var cookieParser = require('cookie-parser');
28 +
29 +// post 요청 데이터를 추출하는 미들웨어
6 var bodyParser = require('body-parser'); 30 var bodyParser = require('body-parser');
7 -var mysql = require('mysql'); 31 +
32 +// mysql과 연동을 위한 모듈
33 +var mysql = require('mysql');
34 +
35 +// JQuery를 서버사이드에 맞게 수정한 것
8 var cheerio = require('cheerio'); 36 var cheerio = require('cheerio');
37 +
38 +// 웹페이지 크롤링과 파씽을 위한 HTTP 클라이언트 라이브러리
9 var request = require('request'); 39 var request = require('request');
40 +
41 +// 로그인, 인증관련 미들웨어
42 +var passport = require('passport');
43 +
10 var index = require('./routes/index'); 44 var index = require('./routes/index');
11 var users = require('./routes/users'); 45 var users = require('./routes/users');
12 var mytoons = require('./routes/mytoons'); 46 var mytoons = require('./routes/mytoons');
13 -var yourtoons=require('./routes/yourtoons'); 47 +var yourtoons =require('./routes/yourtoons');
14 -var passport = require('passport');
15 var setting = require('./routes/setting'); 48 var setting = require('./routes/setting');
16 -var session = require('express-session');
17 -
18 49
19 -//port 50 +// 최초 로그인 성공시 (Strategy 성공시) 단 한번만 호출
20 passport.serializeUser(function(user, done) { 51 passport.serializeUser(function(user, done) {
21 console.log('serialized'); 52 console.log('serialized');
22 done(null, user); 53 done(null, user);
23 }); 54 });
55 +
56 +// 페이지 리로드마다 (서버로 들어오는 requset) 로그인한 사용자인지 조회
24 passport.deserializeUser(function(user, done) { 57 passport.deserializeUser(function(user, done) {
25 console.log('deserialized'); 58 console.log('deserialized');
26 done(null, user); 59 done(null, user);
...@@ -33,13 +66,14 @@ app.set('views', path.join(__dirname, 'views')); ...@@ -33,13 +66,14 @@ app.set('views', path.join(__dirname, 'views'));
33 app.set('view engine', 'ejs'); 66 app.set('view engine', 'ejs');
34 67
35 // uncomment after placing your favicon in /public 68 // uncomment after placing your favicon in /public
36 -//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 69 +// app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
37 app.use(logger('dev')); 70 app.use(logger('dev'));
38 app.use(bodyParser.json()); 71 app.use(bodyParser.json());
39 app.use(bodyParser.urlencoded({ extended: false })); 72 app.use(bodyParser.urlencoded({ extended: false }));
40 app.use(cookieParser()); 73 app.use(cookieParser());
41 app.use(express.static(path.join(__dirname, 'public'))); 74 app.use(express.static(path.join(__dirname, 'public')));
42 75
76 +//
43 connection = mysql.createConnection({ 77 connection = mysql.createConnection({
44 host : 'localhost', 78 host : 'localhost',
45 user : 'root', 79 user : 'root',
...@@ -48,12 +82,14 @@ connection = mysql.createConnection({ ...@@ -48,12 +82,14 @@ connection = mysql.createConnection({
48 database : 'YTMT' 82 database : 'YTMT'
49 }); 83 });
50 84
85 +//
51 app.use(session({ 86 app.use(session({
52 secret: 'secrettexthere', 87 secret: 'secrettexthere',
53 saveUninitialized: true, 88 saveUninitialized: true,
54 resave: true 89 resave: true
55 })); 90 }));
56 91
92 +//app.use(express.static('views'));
57 app.use(passport.initialize()); 93 app.use(passport.initialize());
58 app.use(passport.session()); 94 app.use(passport.session());
59 app.use('/', index); 95 app.use('/', index);
...@@ -61,9 +97,8 @@ app.use('/users', users); ...@@ -61,9 +97,8 @@ app.use('/users', users);
61 app.use('/mytoons', mytoons); 97 app.use('/mytoons', mytoons);
62 app.use('/setting', setting); 98 app.use('/setting', setting);
63 app.use('/yourtoons', yourtoons); 99 app.use('/yourtoons', yourtoons);
64 -//app.use(express.static('views'));
65 100
66 -// catch 404 and forward to error handler 101 +// catch 404 and forward to error handler, for wrong page
67 app.use(function(req, res, next) { 102 app.use(function(req, res, next) {
68 var err = new Error('Not Found'); 103 var err = new Error('Not Found');
69 err.status = 404; 104 err.status = 404;
...@@ -81,5 +116,6 @@ app.use(function(err, req, res, next) { ...@@ -81,5 +116,6 @@ app.use(function(err, req, res, next) {
81 res.render('error'); 116 res.render('error');
82 }); 117 });
83 118
119 +//
84 var server = app.listen(3000); 120 var server = app.listen(3000);
85 module.exports = app; 121 module.exports = app;
......
1 #!/usr/bin/env node 1 #!/usr/bin/env node
2 2
3 +// www : http 서버를 구동시키는 logic
4 +
3 /** 5 /**
4 * Module dependencies. 6 * Module dependencies.
5 */ 7 */
...@@ -12,7 +14,7 @@ var http = require('http'); ...@@ -12,7 +14,7 @@ var http = require('http');
12 * Get port from environment and store in Express. 14 * Get port from environment and store in Express.
13 */ 15 */
14 16
15 -var port = normalizePort(process.env.PORT || '9000'); 17 +var port = normalizePort(process.env.PORT || '3000');
16 app.set('port', port); 18 app.set('port', port);
17 19
18 /** 20 /**
......
This diff is collapsed. Click to expand it.
...@@ -40,4 +40,4 @@ router.get('/', function(req, res, next) { ...@@ -40,4 +40,4 @@ router.get('/', function(req, res, next) {
40 } 40 }
41 }); 41 });
42 42
43 -module.exports = router;
...\ No newline at end of file ...\ No newline at end of file
43 +module.exports = router;
......
...@@ -2,47 +2,47 @@ var express = require('express'); ...@@ -2,47 +2,47 @@ var express = require('express');
2 var router = express.Router(); 2 var router = express.Router();
3 3
4 function addMyToons(id,index,cb){ 4 function addMyToons(id,index,cb){
5 - connection.query("INSERT INTO user_toon_relation SET ?;", 5 + connection.query("INSERT INTO user_toon_relation SET ?;", {user_id : id,toon_index : index},function (err) {
6 - {user_id : id,toon_index : index},function (err) { 6 +
7 - if(err) { 7 + if(err) {
8 - throw err; 8 + throw err;
9 - console.log("내 웹툰 추가중 에러!") 9 + console.log("내 웹툰 추가 중 에러!")
10 - } else{ 10 + } else{
11 - // alert("추가되었습니다.") 11 + // alert("추가되었습니다.")
12 - cb(); 12 + cb();
13 - } 13 + }
14 - }); 14 + });
15 } 15 }
16 +
16 //내툰 수정하기 17 //내툰 수정하기
17 router.post('/toggle_toon',function(req,res,next){ 18 router.post('/toggle_toon',function(req,res,next){
18 var index = req.body.toon_index; 19 var index = req.body.toon_index;
19 var id = req.user.user_id; 20 var id = req.user.user_id;
20 - connection.query("SELECT COUNT(*) FROM user_toon_relation WHERE user_id='"+id+"' && toon_index='"+index+"'", 21 + connection.query("SELECT COUNT(*) FROM user_toon_relation WHERE user_id='"+id+"' && toon_index='"+index+"'", [id,index], function (err, rows,result) {
21 - [id,index], function (err, rows,result) { 22 + if(err) {
22 - if(err){ 23 + console.log("내 웹툰 등록 중 에러!");
23 - console.log("내웹툰 등록중 에러!"); 24 + } else {
24 - }else{ 25 + var count = rows[0]["COUNT(*)"];
25 - var count = rows[0]["COUNT(*)"]; 26 + if(count>0) {//이미 등록되어 있는 것이라면,
26 - if(count>0){//이미 등록되어 있는 것이라면, 27 + connection.query("DELETE FROM user_toon_relation WHERE user_id='"+id+"' && toon_index='"+index+"';", [id, index],function (err, rows, result) {
27 - connection.query("DELETE FROM user_toon_relation WHERE user_id='"+id+"' && toon_index='"+index+"';", 28 + if(err) {
28 - [id, index],function (err, rows, result) { 29 + console.log("내 웹툰 제거중 에러!");
29 - if(err) { 30 + throw err;
30 - console.log("내 웹툰 제거중 에러!"); 31 + } else {
31 - throw err; 32 + //alert("제거되었습니다.")
32 - }else{
33 - // alert("제거되었습니다.")
34 - res.redirect('/setting');
35 - }
36 - });
37 - }else{
38 - addMyToons(id,index,function(){
39 res.redirect('/setting'); 33 res.redirect('/setting');
40 - }); 34 + }
41 - } 35 + });
36 + } else {
37 + addMyToons(id,index,function(){
38 + res.redirect('/setting');
39 + });
42 } 40 }
43 - }); 41 + }
42 + });
44 }); 43 });
45 44
45 +//
46 function getMyToons(id,cb){ 46 function getMyToons(id,cb){
47 //mysql5.7 syntax에 맞게 수정 => 로그인한 유저의 47 //mysql5.7 syntax에 맞게 수정 => 로그인한 유저의
48 var sqlquery = "SELECT t.toon_index, t.name, t.thum_link, t.webtoon_link, t.week, t.site FROM user u, user_toon_relation ur, toon t WHERE u.id = '"+id+"' && u.id=ur.user_id && t.toon_index=ur.toon_index;"; 48 var sqlquery = "SELECT t.toon_index, t.name, t.thum_link, t.webtoon_link, t.week, t.site FROM user u, user_toon_relation ur, toon t WHERE u.id = '"+id+"' && u.id=ur.user_id && t.toon_index=ur.toon_index;";
...@@ -68,4 +68,4 @@ router.get('/', function(req, res, next) { ...@@ -68,4 +68,4 @@ router.get('/', function(req, res, next) {
68 }) 68 })
69 }); 69 });
70 70
71 -module.exports = router;
...\ No newline at end of file ...\ No newline at end of file
71 +module.exports = router;
......
...@@ -3,7 +3,7 @@ var router = express.Router(); ...@@ -3,7 +3,7 @@ var router = express.Router();
3 3
4 /* GET users listing. */ 4 /* GET users listing. */
5 router.get('/', function(req, res, next) { 5 router.get('/', function(req, res, next) {
6 - res.send('respond with a resource'); 6 + res.send('respond with a resource');
7 }); 7 });
8 8
9 module.exports = router; 9 module.exports = router;
......
...@@ -40,4 +40,4 @@ router.get('/', function(req, res, next) { ...@@ -40,4 +40,4 @@ router.get('/', function(req, res, next) {
40 } 40 }
41 }); 41 });
42 42
43 -module.exports = router;
...\ No newline at end of file ...\ No newline at end of file
43 +module.exports = router;
......