everyday com-eat

{ "Hello World!" };/Node.js 13

카테고리 설명
  • 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,..

  • 입력 정보 보안 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) ..

  • 패키지 소프트웨어를 일컫는 여러가지 표현 중 하나 독립적으로 실행되는 프로그램 어떤 프로그램 안에서 부품으로 사용되는 작은 프로그램 패키지 매니저 이러한 패키지를 설치, 업데이트, 삭제하는 등 관리하는 데 도음을 주는 프로그램 npm Node.js에서 가장 광범위하게 사용 Node.js를 설치할 때 함께 설치되는 기본 패키지 매니저 PM2 Node.js로 만든 프로세스를 관리해주는 프로그램 의도하지 않게 꺼지거나 소스가 변경될 때 자동으로 재시동함으로써 서비스를 안정적으로 유지하게 도움 PM2 설치 1. cmd(명령프롬프트) 관리자 모드로 실행 2. pm2 설치 명령어 입력 npm install pm2 -g -g : 컴퓨터의 어느 위치에서나 실행할 수 있게 설정하는 옵션 3. js 파일있는 디렉터리로 이..

728x90