hyunjong

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

/*
bin - 이 폴더 안에는 www.js 파일이 잇으며 www.js는 http 서버를 구동시키는 로직이 들어있다.
node_modules - 모듈들이 설치되는 공간
public - http 서버의 root 폴더고 stylesheets나 images 같은 데이터를 저장할 때 사용한다.
routes - 라우팅을 해주는 역할, 주소를 입력했을 때 어디로 연결해 줄지 결정해주는 javaScript 파일들을 모아놓는 곳입니다.
views - 웹 브라우져에 보여질 디자인을 작성하는 곳이다
*/
// http웹 서버 구조를 쉽게 만들 수 있도록 도와주는 프레임워크
var express = require('express');
var session = require('express-session');
// 폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈, https://horajjan.blog.me/221337515650
var path = require('path');
// favorites icon의 약자로 웹페이지나 웹사이트를 대표하는 아이콘
var favicon = require('serve-favicon');
// 웹 요청에 대해 로그를 출력하는 미들웨어, 외부 모듈이기 때문에 별도로 설치해서 사용
var logger = require('morgan');
// 쿠키를 제어하는 모듈
var cookieParser = require('cookie-parser');
// post 요청 데이터를 추출하는 미들웨어
var bodyParser = require('body-parser');
var mysql = require('mysql');
// mysql과 연동을 위한 모듈
var mysql = require('mysql');
// JQuery를 서버사이드에 맞게 수정한 것
var cheerio = require('cheerio');
// 웹페이지 크롤링과 파씽을 위한 HTTP 클라이언트 라이브러리
var request = require('request');
// 로그인, 인증관련 미들웨어
var passport = require('passport');
var index = require('./routes/index');
var users = require('./routes/users');
var mytoons = require('./routes/mytoons');
var yourtoons=require('./routes/yourtoons');
var passport = require('passport');
var yourtoons =require('./routes/yourtoons');
var setting = require('./routes/setting');
var session = require('express-session');
//port
// 최초 로그인 성공시 (Strategy 성공시) 단 한번만 호출
passport.serializeUser(function(user, done) {
console.log('serialized');
done(null, user);
});
// 페이지 리로드마다 (서버로 들어오는 requset) 로그인한 사용자인지 조회
passport.deserializeUser(function(user, done) {
console.log('deserialized');
done(null, user);
......@@ -33,13 +66,14 @@ app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
// app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
//
connection = mysql.createConnection({
host : 'localhost',
user : 'root',
......@@ -48,12 +82,14 @@ connection = mysql.createConnection({
database : 'YTMT'
});
//
app.use(session({
secret: 'secrettexthere',
saveUninitialized: true,
resave: true
}));
//app.use(express.static('views'));
app.use(passport.initialize());
app.use(passport.session());
app.use('/', index);
......@@ -61,9 +97,8 @@ app.use('/users', users);
app.use('/mytoons', mytoons);
app.use('/setting', setting);
app.use('/yourtoons', yourtoons);
//app.use(express.static('views'));
// catch 404 and forward to error handler
// catch 404 and forward to error handler, for wrong page
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
......@@ -81,5 +116,6 @@ app.use(function(err, req, res, next) {
res.render('error');
});
//
var server = app.listen(3000);
module.exports = app;
......
#!/usr/bin/env node
// www : http 서버를 구동시키는 logic
/**
* Module dependencies.
*/
......@@ -12,7 +14,7 @@ var http = require('http');
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '9000');
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
......
This diff is collapsed. Click to expand it.
......@@ -40,4 +40,4 @@ router.get('/', function(req, res, next) {
}
});
module.exports = router;
\ No newline at end of file
module.exports = router;
......
......@@ -2,47 +2,47 @@ var express = require('express');
var router = express.Router();
function addMyToons(id,index,cb){
connection.query("INSERT INTO user_toon_relation SET ?;",
{user_id : id,toon_index : index},function (err) {
if(err) {
throw err;
console.log("내 웹툰 추가중 에러!")
} else{
// alert("추가되었습니다.")
cb();
}
});
connection.query("INSERT INTO user_toon_relation SET ?;", {user_id : id,toon_index : index},function (err) {
if(err) {
throw err;
console.log("내 웹툰 추가 중 에러!")
} else{
// alert("추가되었습니다.")
cb();
}
});
}
//내툰 수정하기
router.post('/toggle_toon',function(req,res,next){
var index = req.body.toon_index;
var id = req.user.user_id;
connection.query("SELECT COUNT(*) FROM user_toon_relation WHERE user_id='"+id+"' && toon_index='"+index+"'",
[id,index], function (err, rows,result) {
if(err){
console.log("내웹툰 등록중 에러!");
}else{
var count = rows[0]["COUNT(*)"];
if(count>0){//이미 등록되어 있는 것이라면,
connection.query("DELETE FROM user_toon_relation WHERE user_id='"+id+"' && toon_index='"+index+"';",
[id, index],function (err, rows, result) {
if(err) {
console.log("내 웹툰 제거중 에러!");
throw err;
}else{
// alert("제거되었습니다.")
res.redirect('/setting');
}
});
}else{
addMyToons(id,index,function(){
connection.query("SELECT COUNT(*) FROM user_toon_relation WHERE user_id='"+id+"' && toon_index='"+index+"'", [id,index], function (err, rows,result) {
if(err) {
console.log("내 웹툰 등록 중 에러!");
} else {
var count = rows[0]["COUNT(*)"];
if(count>0) {//이미 등록되어 있는 것이라면,
connection.query("DELETE FROM user_toon_relation WHERE user_id='"+id+"' && toon_index='"+index+"';", [id, index],function (err, rows, result) {
if(err) {
console.log("내 웹툰 제거중 에러!");
throw err;
} else {
//alert("제거되었습니다.")
res.redirect('/setting');
});
}
}
});
} else {
addMyToons(id,index,function(){
res.redirect('/setting');
});
}
});
}
});
});
//
function getMyToons(id,cb){
//mysql5.7 syntax에 맞게 수정 => 로그인한 유저의
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) {
})
});
module.exports = router;
\ No newline at end of file
module.exports = router;
......
......@@ -3,7 +3,7 @@ var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
res.send('respond with a resource');
});
module.exports = router;
......
......@@ -40,4 +40,4 @@ router.get('/', function(req, res, next) {
}
});
module.exports = router;
\ No newline at end of file
module.exports = router;
......