분류 전체 보기 1309

Node.js 생활코딩 정리 – Cookie를 이용한 장바구니 만들기

Cookie 이용하기 2번째 장바구니 만들기 app_cookie_cart.js var express = require('express'); var cookieParser = require('cookie-parser');//쿠키 파서 사용 var app = express(); app.use(cookieParser());//expressjs API보면 나옴 //상품들 리스트 원래는 데이터베이스여야함 var products = { 1:{title:'The history of web 1'}, 2:{title:'The next web'} }; //상품들 페이지 app.get('/products', function(req, res){ var output = ``; for(var name in products){//..

Node.js 생활코딩 정리 – HTTP 및 Cookie 구현하기

HTTP(Hyper Text Transfer Protocol)란? 웹브라우저와 웹서버간의 통신을 위한 규약 웹브라우저 request 웹서버 크롬에서 F12누르고 NETWORK탭을 보면 HTTP 헤더정보를 볼 수 있다. Cookie 구현하기 클라이언트에 대한 정보는 클라이언트의 PC의 하드디스크에 저장하는 정보이다. PC내에 텍스트 파일의 형태로 저장되며 총 300개까지 저장 할 수 있다. 각 도메인당 20개가 가능하며 한 파일의 최대 크기는 4096byte이다. 쿠키를 사용하기 위해 cookie parser를 설치한다. app_cookie.js var express = require('express'); var cookieParser = require('cookie-parser');//쿠키 파서 사용 v..

Node.js 생활코딩 정리 – 세번째 웹애플리케이션 글 삭제 기능 구현

Node.js 웹애플리케이션 글 삭제 기능 구현 삭제 수정은 반드시 POST방식을 써야함을 잊지말자. GET방식을 쓰면 취약점이 된다. app_mysql.js app.get('/topic/:id/delete', function(req, res){ var sql = 'SELECT id, title FROM topic';//글목록을 보여주기 위한 쿼리문 var id = req.params.id; conn.query(sql, function(err, topics, fields){ var sql = 'SELECT * FROM topic WHERE id=?'; conn.query(sql, [id], function(err, topic){ if(err){//에러가 있다면 여기서 처리 res.status(500).s..

Node.js 생활코딩 정리 – 두번째 웹애플리케이션 글 편집 기능 구현

Node.js 웹애플리케이션 글 편집 기능 구현1 특정한 topic을 선택후 edit링크를 통해 데이터를 수정한다. 먼저 view.jade 파일을 수정한다. doctype html html head meta(charset='utf-8') body h1 a(href='/topic') Server Side Javascript ul each topic in topics li a(href='/topic/'+topic.id)= topic.title article if topic h2= topic.title = topic.description div= 'by'+topic.author else h2 Welcome | This is server side js. ul li a(href='/topic/add') add i..

Node.js 생활코딩 정리 – 첫번째 MYSQL을 이용해서 웹애플리케이션 구현하기

MYSQL을 이용해서 웹애플리케이션 구현 app_mysql.js var express = require('express');//익스프레스를 가져옴 var bodyParser = require('body-parser') var fs = require('fs'); var mysql = require('mysql'); var conn = mysql.createConnection({ host : 'localhost', user : 'root', password : 'qwer1234', database : 'o2', port : 3307 }); conn.connect();//database 접속 완료 var app = express(); var multer = require('multer');//업로드를 위한 m..

Node.js 생활코딩 정리 – node-mysql 사용하기

node-mysql 1 : 접속 node-mysql 설치 database_mysql.js var mysql = require('mysql'); var conn = mysql.createConnection({ host : 'localhost', user : 'root', password : 'qwer1234', database : 'o2', port : 3307 }); conn.connect(); //connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) { // if (err) throw err; // // console.log('The solution is: ', rows[0].solution); //}); var sql = '..

Node.js 생활코딩 정리 – MYSQL 데이터베이스 사용법

MYSQL 데이터베이스 사용법 mysql 실행 비트나미 설치 경로\mysql\bin에서 mysql-uroot –p 를 치면 비번을 넣으라고 나옴 비번 치면 접속 완료 ./mysql –hlocalhost –P3306 –uroot -p 위와 같이 해도됨 -h는 mysql 서버명 명시 –P는 3306 포트를 의미함 데이터베이스 생성하기 CREATE DATABASE o2 CHARACTER SET utf8 COLLATE utf8_general_ci; show databases로 데이터베이스 생성 확인 use o2 //o2라는 이름의 데이터베이스를 사용함 show tables로 테이블이 제대로 생성된 것을 볼 수 있음. 데이터 삽입 INSERT INTO topic (title, description, author)..

Node.js 생활코딩 정리 - 파일업로드 준비

파일업로드 준비 multer라는 모듈을 설치해보자 npm install –save multer 파일업로드 2: 업로드 폼 jade 파일에서 form을 지정할 때 enctype="multipart/form-data"를 반드시 유의하자(파일업로드시에는 필요) var express = require('express');//익스프레스를 가져옴 var bodyParser = require('body-parser') var fs = require('fs'); var app = express(); var multer = require('multer');//업로드를 위한 multer를 가져옴 var upload = multer({dest: 'uploads/'});//uploads라는 폴더가 업로드 폴더임 app.use..

Node.js 생활코딩 정리 - 웹앱 제작 코드 개선하기

웹앱 제작 6 : 코드의 개선 1. 라우팅 중복의 제거 방법 : 글목록 표시 부분 2. 글작성하기를 좀 더 세련되게 표현 3. 글작성후 redirect를 통해 바로 쓴 글로 이동 var express = require('express');//익스프레스를 가져옴 var bodyParser = require('body-parser') var fs = require('fs'); var app = express(); app.use(bodyParser.urlencoded({ extended: false }));//body parser를 사용함 app.locals.pretty = true;//템플릿 줄바꿈 app.set('views', './views_file');//템플릿 폴더 위치 표시 app.set('view..

Node.js 생활코딩 정리 – 웹앱 제작 파일로 된 본문 읽기

웹앱 제작5 : 파일로 된 본문 읽기 //글을 클릭했을때 옴 app.get('/topic/:id', function(req, res){ var id = req.params.id;//id로 접근을 함 //다음부분은 topics:files때문에 그런것임 fs.readdir('data', function(err, files){//첫번째는 에러 두번째는 파일목록을 전송받음 if(err){//에러가 있다면 여기서 처리 res.status(500).send('Internal Server Error'); } fs.readFile('data/'+id, 'utf8', function(err, data){ if(err){//에러가 있다면 여기서 처리 res.status(500).send('Internal Server Er..

반응형