목록노드js (17)
바르고 뜨겁게
multer 이미지 업로드npm i multerhtml이미지를 업로드하기 위해서는 form에 아래와같이 enctype 속성을 추가해야된다.post.jsstoragemulter.diskStorage : 로컬에 저장destination(req, file, callback) : 파일 저장 경로 지정filename(req, file, callback) : 파일 이름 지정const express = require('express'); const multer = require('multer'); const path = require('path'); const router = express.Router(); const upload = multer({ storage: multer.diskStorage({ des..
노드 보안 처리 dotenv dot(.) + env.env 파일에 키=값 형식으로 비밀번호 저장npm i dotenvroot 폴더에 .env 파일을 생성한다..envCOOKIE_SECRET=secretpassword PORT=8001app.js// process.env에 .env의 내용이 들어간다. require('dotenv').config(); // .env는 아래처럼 불러올수있다. app.set('port', process.env.PORT || 8001); ... process.env.COOKIE_SECRET
노드 보안 처리 dotenv dot(.) + env.env 파일에 키=값 형식으로 비밀번호 저장npm i dotenv root 폴더에 .env 파일을 생성한다..envCOOKIE_SECRET=secretpassword PORT=8001app.js// process.env에 .env의 내용이 들어간다. require('dotenv').config(); // .env는 아래처럼 불러올수있다. app.set('port', process.env.PORT || 8001); ... process.env.COOKIE_SECRET
시퀄라이즈(sequelize)SQL문법 대신 JavaScript로 대체할 수 있는 ORMnpm i sequelize mysql2 // 시퀄라이즈는 명령프롬프트에서 바로 사용하는 방식(커맨드라인인터페이스)을 지원함 npm i -g sequelize-cli // 시퀄라이즈 환경 초기화 sequelize init데이터베이스 스키마 생성sequelize db:createmodels/index.js 시퀄라이즈의 메인 파일models/ 아래 자바스크립트들은 테이블과 1:1 대응된다 config/config.json 시퀄라이즈 설정 파일 시퀄라이즈로 데이터베이스 만들기시퀄라이즈 설정config/config.json{ "development": { "username": "root", "password": "12..
템플릿 뷰 엔진 PUG html 대신에 다른 템플릿 엔진을 사용할 수 있다.PUG pug는 들여쓰기로 부모,자식 태그를 구분한다. 들여쓰기는 탭/스페이스 상관없지만 하나로 통일해야 함. express (폴더명) --view=pug npm i npm install --save express jade pug변수선언프론트 (.pug) 에서 - 선언 후 자바스크립트로 변수 선언가능렌더링시에 선언 가능router.get('/',(req,res,next)=>{ console.log('세번째 미들웨어'); res.render('test',{ title3: '렌더링 변수', title4: '추가', }); });app.js app.engine('pug', require('pug').__express); app.set(..
express - app.js 요청(req) >> 미들웨어(app.use 형태) >> 응답(res) next() 도 하지않고 res응답도 하지 않으면 클라이언트는 무한정으로 기다린다.라우터기능app.js는 쉽게말하면 중앙 통제를 하는 파일로, 라우터들을 연결한다.app.get('/users', (req,res)=>{ res.send('유저 정보'); }); ...익스프레스 설정, 값 저장app.set미들웨어(middleware) 장착app.use : 모든경우 적용 / app.get app.post ... : 특수한 경우 적용app.use안의 req, res로 요청과 응답을 조작할 수 있다. req, res는 모든 미들웨어를 차례대로 거쳐간다다음 미들웨어로 넘어가기 위해선 next() 를 호출하거나 r..
npm 명령어npm outdated : 패키지이름, 현재버전, 최신버전 등을 알려준다.npm update (패키지이름) : 패키지 업데이트 실행 (마이너랑 패치버전까지만)npm remove (패키지이름) : 제거 remove > re 단축가능npm search (검색어) : 어떤 패키지들이 있는지 검색가능(온라인)npm info (패키지이름) : 패키지 정보 확인 (온라인)npm ls (패키지이름) : 내 패키지에서 검색한 패키지가 어떤 디펜던시에 의해 설치되었는지 알 수 있다.npm version (버전) : 패키지 버전 전체 변경npm version patch : 패키지의 패치버전 한단계 올림npm version minor : 패키지의 마이너버전 한단계 올림 ( 패치는 초기화 )npm version ..
Node JS - 노드 서버 만들기http 모듈, localhost, 포트http 모듈은 선언된 js를 서버프로그램으로 만든다.http 모듈이 서버 역활을 하고 node는 이걸 실행한다.const http = require('http'); // http.createServer(요청/응답 콜백); http.createServer((req, res)=>{ console.log('server start'); res.write('server1.js PAGE'); res.write('write used multiple times'); res.write('write used multiple times'); res.end('end'); }).listen(8080, ()=>{ console.log('8080 포..
예외처리try/catch 사용setInterval(()=>{ console.log('시작'); try{ throw new Error('에러 발생'); }catch (error){ console.error(error); } },1000);process.on('uncaughtException',콜백함수) 을 사용하면 예기치 못한 에러 처리가 가능하다.process.on('uncaughtException',(err)=>{ console.error('모든 에러 한꺼번에 처리',err); }) setInterval(()=>{ throw new Error('에러 발생'); },1000); setTimeout(()=>{ console.log('2초 후 실행'); },2000);모든 에러 한꺼번에 처리 Er..
events 모듈const EventEmitter = require('events'); const endCallback = ()=>{ console.log('안녕히 가세요'); } // 이벤트를 만들 수 있게 해주는 모듈 // myEvent.addListener(이벤트명, 콜백리스너); const myEvent = new EventEmitter(); // '방문'이라는 이름의 이벤트 생성 myEvent.addListener('방문', ()=>{ console.log('안녕하세요? xxx 홈페이지 입니다') }); // addListener = on (같은 기능:별명) myEvent.on('종료', ()=>{ console.log('종료 되었습니다'); }); // 같은 이벤트에 ..