목록Javascript/Node.js (34)
9시 24분
미들웨어란, 다른 사람 혹은 자신이 만든 함수로 생각하면 된다. 공식 문서 상의 정의는 '요청-응답 주기 중 req, res 객체에 대한 접근 권한을 갖고 변형시킬 수 있으며 미들웨어 스택 내 다음 미들웨어 함수에 대한 접근 권한을 next라는 인자로 갖는 함수'라고 되어 있다. body-parser과 compression이라는 미들웨어를 사용해보고, 미들웨어를 직접 만들어보고, 미들웨어의 실행순서에 대해 알아보자. body-parser create_process를 보자. var body = ''; request.on('data', function(data){ body = body + data; }); request.on('end', function(){ var post = qs.parse(body); ..
페이지 생성 app.get('/create', function(request, response){ topic.create(request, response); }); app.post('/create_process', function(request, response){ topic.create_process(request, response); }); 작성한 내용을 전달받을 때는 app.post()를 사용한다. post 방식으로 전송하면 app.get()이 아닌 app.post()로 자동으로 가지만 명시적으로 create_process라고 하여 구분하여 주자. exports.create = function(request, response){ db.query..
배포에 성공했으니 express도 얼른 신나게 해보장 실습 준비 npm install express --save express를 설치하고 node_modules에 반영되었는지 확인하자. var express = require('express'); var app = express() // app.get('/', (req, res) => res.send('Hello World')); app.get('/', function(req, res){ return res.send('Hello World'); }); app.listen(3000, () => console.log('Example app listening on port 3000!')); app.get - 라우팅 기존 코드에서는 if else 문을 이용하여 ..
https://deploy-test-0707.herokuapp.com/ IT 경진대회 때도 배포에서 막혀서 못했는데 이번에 성공했다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 진짜 그때 새벽 내내 붙잡아도 안되던게 성공하니까 너무 뿌듯하다 처음 성공했을 때 나 진짜 입틀막했다니까 ...?!?! 배포 과정을 따로 글로 남기지 않고 내가 참고한 URL들을 첨부하겠다. 1. 베이스로 참고한 것 https://wookgu.tistory.com/3 Express로 만든 웹 사이트 heroku에 올리기 학교 졸업 프로젝트로 만들었던 웹 애플리케이션을 heroku 서버에 올려 배포한 과정을 적어보려고 합니다. 먼저, 제가 만든 웹 애플리케이션은 express(node.js)와 mysql로 만든 단순한 형태의 웹사이트 wookgu.tisto..

이제까지 공부한 내용들을 github에 연동하여 올려두었다. 올리는 과정에서 bash에서 pull해버려서 공부한 내용 다 날릴뻔하고... 히스토리를 보고 되돌리기를 하는 과정에서 드디어 소스트리를 깔았다 ^ㅅ^,,, 그리고 repository가 이고잉님이 쓰던거 위에 얹어서? 쓰고 있길래 repository도 다시 팠다 앞으로는 bash에서 나대지 말고 소스트리 이용해서 하자...! node_modules는 파일이 많아서 .gitignore해주어야 하고 깃허브에서 다시 clone해서 사용할 때는 npm install을 통해서 node_modules를 다시 설치해주자!

저자 목록을 보고, 저자를 생성/수정/삭제하는 기능을 구현하자. 1. 저자 목록 보기 var db = require('./db'); var template = require('./template.js'); exports.home = function(request, response){ db.query(`SELECT * FROM topic`, function(error, topics){ if(error) throw error; db.query(`SELECT * FROM author`, function(error2, authors){ if(error2) throw error2; var title = 'Author'; var list = template.list(topics); v..
1. db 연결 파트 var db = require('./lib/db'); - in lib 디렉토리 var mysql = require('mysql'); var db = mysql.createConnection({ host: 'localhost', user: 'root', password: '혹시 모르지만 비밀', database: 'web' }); db.connect(); module.exports = db; + db.js가 github에 공개되는 것은 위험할 수가 있으므로 db-template.js를 생성하고 db.js는 github push에서 제외하는 방법이 있음을 알아두자. var mysql = require..

left join을 이용해서 누가 작성한 글인지도 나타내보자. 상세 글 페이지를 나타내는 else 문을 아래와 같이 수정하자. else{ db.query(`SELECT * FROM topic`, function(error, topics){ if(error) throw error; db.query(`SELECT * FROM topic left join author on topic.author_id=author.id WHERE topic.id=?`, [queryData.id],function(error2, topic){ if(error2) throw error2; var title = topic[0].title; var description = topic[0].description; var list = te..