node.js 15
-
1. DB 연결 새로운 js파일 만들어서 db연결 코드 옮겨주기 var mysql = require('mysql'); var db = mysql.createConnection({ host:'localhost', user:'jinsugyeong', 'password':'0000', database:'opentutorials' }); db.connect(); module.exports = db; 필요없는 코드 삭제하고, db 변수에 새로만든 파일의 경로 적어주기 var http = require('http'); var url = require('url'); var qs = require('querystring'); var template = require('./lib/template.js'); var db ..
-
1. 작성자 목록 가져오기 ...(생략)... } else if(pathname === '/create') { //create일 때 실행 db.query(`SELECT * FROM topic`, function(error, topics) { db.query('SELECT * FROM author', function(error2, authors) {//작성자 select 질의문 추가 console.log('authors : ', authors); ...(생략)... 2. 셀렉트박스 만들기 tag라는 빈 문자열 변수와 i라는 0따리 정수 인덱스 변수 만들어서 select 태그의 자식태그인 option 태그를 문자열로 묶어버려서 넣기 var tag = ''; var i = 0; while(i < authors..
-
1. 목록 조회 모듈 가져오기 var mysql = require('mysql'); DB접속 정보 정의 var db = mysql.createConnection({ host:'localhost', user:'jinsugyeong', 'password':'0000', database:'opentutorials' }); db.connect(); 기존에 파일 읽어오는 부분 수정 db.query(`SELECT * FROM topic`, function(error, topics) { var title = 'Welcome'; var description = 'Hello, Node.js'; var list = template.list(topics); var html = template.HTML(title, list,..
-
MySQL DB구축하기 대충 앞에서 만든 홈페이지에 맞게 db랑 테이블 만들어주면 되는듯.. 2021.12.13 - [{ "Hello World!" };/DataBase] - (DB) DBMS 구축하기 (DB) DBMS 구축하기 DBMS - 데이터베이스 관리 시스템(DataBase Management System) 1. DBMS종류를 정하고 설치한다 (Oracle,MySQL,IBM의 DB2, SQL Server,MongoDB 등) - 우리는 mysql를 서버 설치(구축)한다. http://oracle.com/ - mysql dbms를 관리하 everyday-com-eat.tistory.com 모듈 설치 및 의존성 설정 npm install --save(or -S) mysql --save(or -S): 현..
-
입력 정보 보안 ex) 아이디와 비밀번호를 password.js라는 파일에 저장해서 소스코드 여러 곳에서 사용한다고 가정 //password.js 파일 module.exports = { id:'jsg', password:'0000' } 사용자가 'localhost:3000/?id=.../password.js' 라 요청 시정보가 고대로 노출된다... ../이라는 경로를 더 입력하여 그보다 상위 디렉터리도, 컴퓨터 전체도 접근가능 이러한 문제가 발생하지 않도록 막는 것이 보안이고, 보안이 중요한 이유이다. 해결방안 : 사용자가 ../같은 상위경로를 포함하여도 강제로 파일명만 사용(parsing)하게 한다 사용자 경로(URI) 분석 node js path parse path 모듈 추가 var path = re..
-
템플릿 기능 정리 객체지향 방식으로 templateHTML, templateList 함수(성격이 같은 것들을 그룹화 하기 위해 접두사나 접미사를 사용하곤 함) template 객체 정의 ...생략 var template = { HTML: function(title, list, body, control) { return ` !doctype html> WEB ${list} ${control} ${body} `; }, list: function(filelist) { var i = 0; var list = ''; while(i < filelist.length) { list += `${filelist[i]}`; i++; } list += ''; return list; } } var app = http.create..
-
글 수정하기 수정 링크 생성 update 는 글을 수정하는 기능이기 때문에 쿼리스트링으로 id값을 받았을때만 보여지게 하고 싶음 홈 화면 = create만/ 페이지 화면 = create,update 둘다 / create 화면 = 자체 form태그 사용중 공백 삽입 update 할때 수정대상을 알려줘야 하기때문에 쿼리 스트링으로 id를 넘겨줘야함 /** * 본문 셋팅 함수 */ function templateHTML(title, list, body, control) { return ` ...생략... WEB ${list} ${control} ${body} ...생략... `; } ----------------------------------------------------- //홈 var template ..
-
데이터 전송하기 1. create 링크만들기 /** * 본문 셋팅 함수 * @param {*} title 제목 * @param {*} list 글 목록 * @param {*} body 본문 * @returns 중복코드 => template */ function templateHTML(title, list, body) { return ` WEB ${list} create //여기 ${body} `; } 2. 분기처리한 곳에 create 조건 추가해주기 if(pathname === '/') { //루트일 때 실행 (오류X) ...생략... } else if(pathname === '/create') { //create 일 때 fs.readdir('./data',function(error, filelist) ..