ComputerScience/NodeJs (22) 썸네일형 리스트형 node - 7 MySQL Node.js 교과서 개정 2판: 7장 MySQL - 1 thebook.io * 위 내용을 정리하였음 7 MySQL - 관계형 데이터베이스 관리 시스템의 대표 주자이다. 7.1 데이터베이스란? - 관련성을 가지며 중복이 없는 데이터들을 서버의 하드 디스크나 SSD에 저장한다. - 동시에 여러 사람들이 부여된 권한에 따라 데이터에 대한 작업이 가능하다. - 특히 관계형 DBMS를 RDBMS라고 한다. - SQL언어를 사용하는 MySQL을 사용해보자. 7.2 MySQL 설치 $ brew install mysql $ brew services start mysql $ mysql_secure_installation - 설치 // 서버가 꺼져있다면 $ mysql.server start $ mysql -h local.. node - 6.5 템플릿 엔진 사용하기(nunjucks) 더북(TheBook): Node.js 교과서 개정 2판 thebook.io * 위 내용을 정리하였음 6.5.2 넌적스 - pug같은 템플릿 엔진이다. - 설치 후 app.js와 연결한다. $ npm i nunjucks ... const path = require('path'); const nunjucks = require('nunjucks'); dotenv.config(); const indexRouter = require('./routes'); const userRouter = require('./routes/user'); const app = express(); app.set('port', process.env.PORT || 3000); app.set('view engine', 'html'); nun.. node - 6.5 템플릿 엔진 사용하기(pug) Node.js 교과서 개정 2판: 6.5 템플릿 엔진 사용하기 thebook.io * 위 내용을 정리하였음 6.5 템플릿 엔진 사용하기 - 정적인 HTML만으로는 한계가 있기 때문에 대표적인 템플릿 엔진인 퍼그와 넌적스를 살펴보자. 6.5.1 퍼그(제이드) - ruby로 만들어졌다. $ npm i pug - 퍼그 설치 후 익스프레스와 연결하기 위해 다음 줄을 삽입한다. ... app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'pug'); app.use(morgan('dev')); ... - views는 템플릿 파일들이 들어가 있다. 이 폴더를 지정해.. node - 6.3 Router 객체로 라우팅 분리 ~ 6.4 req, res 객체 더북(TheBook): Node.js 교과서 개정 2판 thebook.io * 위 내용을 정리하였음 6.3 Router 객체로 라우팅 분리하기 - 4.2절에서 만들었던 라우터는 if분기 때문에 지저분 했다. const app = express(); app.get('/upload', (req, res) => { res.sendFile(path.join(__dirname, 'multipart.html')); }); - 여기에 app.get이 라우터이다. - 라우터를 추가할수록 app.js가 길어지니까 express를 이용해서 깔끔하게 분리해보자. // routes/index.js const express = require('express'); const router = express.Router(); // .. node - 6.2 자주 사용하는 미들웨어 더북(TheBook): Node.js 교과서 개정 2판 thebook.io * 위 내용을 정리하였음 const express = require('express'); const morgan = require('morgan'); const cookieParser = require('cookie-parser'); const session = require('express-session'); const dotenv = require('dotenv'); const path = require('path'); dotenv.config(); const app = express(); app.set('port', process.env.PORT || 3000); app.use(morgan('dev')); app.use('/.. node - 6 Express로 웹 서버 만들기 더북(TheBook): Node.js 교과서 개정 2판 thebook.io * 위 내용을 정리하였음 - 익스프레스는 npm에서 제공하는 웹 서버 프레임워크이다. - 익스프레스를 사용하면 더 이상 if문으로 요청 메서드와 주소를 구별하지 않아도 된다. 6.1 익스프레스 프로젝트 시작하기 - package.json을 만들고 express와 nodemon을 설치한다. - scripts에 "start" : "nodemon app"을 적어준다. nodemon app을 하면 app.js를 nodemon으로 실행한다는 뜻이다. 서버 코드에 수정 사항이 생길 때마다 nodemon 모듈로 서버를 자동으로 재시작한다. { "name": "learn-express", "version": "0.0.1", "descriptio.. node - 5 Package Manager 더북(TheBook): Node.js 교과서 개정 2판 thebook.io * 위 내용을 정리하였음 - 세상에 무수히 많은 자바스크립트 개발자들이 만들어 놓은 모듈들을 사용해본다. - 그 코드들이 공개되어 있는 서버인 npm(패키지 매니저)에 대해 알아본다. 5.1 npm 알아보기 - node package manager - 특정 기능이 필요하다면 npm에서 찾아서 다운로드 하여 사용하면 된다. - npm에 업로드된 모듈들을 패키지라고 한다. - yarn은 메타(페이스북)에서 내놓은 패키지 매니저이다. (npm의 대체재) 5.2 package.json으로 패키지 관리하기 - 프로젝트에 사용되는 패키지들의 버전을 관리하는 파일이다. - 무조건 먼저 만들고 시작하자. - npm init으로 생성한다. 과정은.. node - 4 http 모듈로 서버 만들기 더북(TheBook): Node.js 교과서 개정 2판 thebook.io * 위 내용을 정리하였음 4.1 요청과 응답 이해하기 - 클라이언트에서 서버로 request를 보내고 내용을 읽고 처리한 후 response를 보낸다. - 요청과 응답은 이벤트 방식이다. 요청이 왔을 때 어떤 작업을 수행할지 이벤트 리스너를 미리 등록해두어야 한다. - 웹 브라우저에서 요청을 처리하기 위해서 http 서버가 있어야 한다. - http 모듈의 createServer 메서드를 사용해보자. const http = require('http'); http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' }).. 이전 1 2 3 다음