everyday com-eat

{ "Hello World!" }; 87

카테고리 설명
Programming language & library study
  • 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..

  • 부이 ^_____^v import 'dart:convert'; import 'dart:io'; import 'dart:math'; void main() { // 1. 유저에게 어떤 타입을 낼 것인지 물어보는 질의 창 print('가위, 바위, 보 중 하나를 정해서 입력해 주세요.'); final String userInput = stdin.readLineSync(encoding: utf8) ?? 'Error'; // 2. 컴퓨터가 낼 타입이 어떤 것인지 결정하는 함수 const selectList = ['가위', '바위', '보']; final cpuInput = selectList[Random().nextInt(3)]; //0~2 임의 값 가져옴 print('안 내면 진거 가위,바위, 보\t >>>>'..

  • async / await / Futre : 1회만 응답을 돌려받는 경우 async* / yield / Stream : 지속적으로 응답을 돌려받는 경우 Future todo (int second) async { await Future.delayed(Duration(seconds: second)); print('TODO Done in $second seconds'); } todo(3); //3초뒤 todo(1); //1초뒤 todo(5); //5초뒤 Stream todo2() async* { int cnt = 0; while(cnt

  • Dart란? - Google에서 Js에서 영감을 받아 개발한 언어 - Dart Pad(Web Browser), Android Studio, IntelliJ, VS Code에서 사용 가능 타입이란? 데이터 유형 타입은 반드시 정의할 필요는 없지만, 프로그래밍 특성 상 주고받는 타입에 대한 정의가 명확해야, 추후 유지보수에 도움이 됨 확정형 기본형 : 참/거짓 bool, 정수 int , 실수 double, 문자열 String, Null 자료형 :List, Set, Map 확장형: Object, Enum, Stream 가변형 var : 최초에 한 번 부여 된 타입이 고정적으로 사용 Dynamic: 타입이 코드 진행 중에 언제든 변환 가능 const: compile 시점에 상수처리 될 경우에 활용 final :..

  • 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..

728x90