생활코딩/node.js-mysql 9

페이지 기능구현 해보기(실패)

내일 페이지 기능을 구현해보려고 한다. 잠깐 구글링과 티스토리를 참고한 결과 get방식으로 ?page=1 , ?page=2 이런 식으로 url을 생성하면 될 것으로 보인다. 또한 생활코딩에서 알려준 대로 limit과 offset을 이용. 따라서 내일 계획은 각 페이지에 보여줄 정보 수를 결정하고, 그 정보 수에 따라 전체 페이지 넘버링을 하는 방법을 생각해봐야겠다. 아래는 okky에서 멋진 분이 주신 힌트! 어떻게든 구현해보려고 했는데 잘 되지 않았다. 내가 당면한 문제는,,, 우선 검색 결과에 따라 페이지 개수를 정하는 것까지는 했으며, 각 페이지에는 url의 쿼리 데이터에 따라 offset을 지정하면 될 것이다. 그러나 문제는 검색 결과에 따라 각 번호에 맞는 url에 페이지를 새롭게 구성해야 하는데..

검색 기능을 넣다.

모양은 매~~우 이상하지만 검색 기능을 넣어봤다. 해당 검색은 이렇게 콤보박스로 어느 카테고리에서 검색 할 지 알려준다. 나는 search.js라는 것을 만들어서 사용하였다. 이 코드는 post 방식을 이용해서 검색 정보를 받은 후 table 형식으로 보여준다. const qs = require('querystring'); const topic = require('./topic.js') const template= require('./template.js') exports.search = function(request, response){ var body = ''; request.on('data',function(data){ body = body + data ; }); request.on('end',fu..

node.js - mysql 수업을 마치며/ 더 해보면 좋을 것들

1. 검색 기능 만들기 hint : 을 이용해서 검색창을 만들고, 사용자가 검색을 했을 때, get 방식으로 전송 되도록 한다. select *from topic where title ='keyword' 혹은 index 기능 사용해보기! 2. 정렬 기능 만들어 보기 먼저 작성된 글이 먼저 보이거나, 나중에 저자의 이름 순으로 select*from topic order by ~ 3. 페이지 기능 select*from topic limit 0 offset 20 4. Not Only SQL 정보 기술은 SQL의 한계에 갖혀 있기 때문에 SQL을 벗어나면 새로운 방식들을 엿볼 수 있다.

SQL injection

현재 내가 만든 홈페이지는 url에 있는 query 데이터를 통해서 알맞은 정보를 보여준다. 해당 부분의 코드는 다음과 같다. exports.desc = function(request,response){ var _url = request.url; var queryData = url.parse(_url,true/*true는 객체형식으로 받아옴*/).query; 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], fu..

저자 관련 기능 구현

저자 관련 만들기/읽기/수정/삭제 기능을 구현 하였음 const template = require('./template.js'); const db = require('./db'); const url = require('url'); const qs = require('querystring'); exports.authors = function(request, response){ db.query(`select * from topic`, function(error,topics){ db.query(`select*from author`, function(error2, authors){ var list = template.list(topics); var title = 'Author List'; var html = t..

mysql로 node.js에서 만든 수업을 옮기다.

아래 코드는 node.js로 파일시스템 하에 만들었던 홈페이지를 database 시스템 아래로 옮긴 것이다. topic이라는 라이브러리를 만들어 각 페이지를 모듈화 하여 간결하게 만들었다. const http = require('http'); const url = require('url'); const path = require('path'); const topic = require('./lib/topic'); const app = http.createServer(function(request,response){ var _url = request.url; var queryData = url.parse(_url,true/*true는 객체형식으로 받아옴*/).query; var pathname = url.p..

node.js와 mysql 연결하기

생활코딩에서 말해주신 것을 따라 npm을 통해 mysql을 설치 했으면 www.npmjs.com/package/mysql 에 써있는 데로 var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', user : 'me', password : 'secret', database : 'my_db' }); connection.connect(); connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) { if (error) throw error; console.log('The solution is: ', results[0].s..

npm과 package.json

npm은 node package manager의 약자. node.js에 모듈을 설치하고 관리하는 것을 도와주는 것으로 보인다. package.json은 프로젝트의 정보와 패키지 버전 정보를 명시하는 파일. 특히 dependecies는 프로젝트가 의존하는 패키지들을 말한다. npm에 모듈을 설치할 때 npm install --save mysql 이런 식으로 설치하면 package.json에 dependencies에 등록이 된다. 아래 링크는 npm install option들이다. docs.npmjs.com/cli/v6/commands/npm-install