목록자바스크립트/Node Js (24)
바르고 뜨겁게
미들웨어요청과 응답의 중간에 위치하여 기능을 추가하거나 필터링함.미들웨어 형태 app.use(function(req, res, next) { ... next(); })next() : 요청의 흐름을 제어함next() : 다음 미들웨어로 이동next('route') : 다음 라우터로 이동next(error내용) : 에러 핸들러 이동 미들웨어 종류 및 기능morgan : 콘솔에 기록body-parser : 본문을 해석해주는 미들웨어. json, raw, text등의 본문 데이터들을 해석해 req.body에 추가함(ex) URL-encoded 형태의 name=righthot&age=30 데이터를 {name: 'righthot', age:30} 으로 변형cookie-parser : 쿠키 해석static : 정적인..
node express 구조bin/www var app = require('../app'); var debug = require('debug')('learn-express:server'); var http = require('http');app : express() 인스턴스. app.set(키,값) 형태로 데이터를 저장할 수 있으며 app.get(키)로 가져올 수 있다.debug : 콘솔에 로그를 남길 수 있는 모듈http : 서버 생성 모듈 var port = normalizePort(process.env.PORT || '3000');process.env 객체에 PORT 값이 있으면 사용하고 없으면 3000을 기본 포트로 사용 var server = http.createServer(app); serve..
Node.js 란?크롬 V8 자바스크립트 엔진으로 빌드된 비동기 이벤트 주도 JavaScript 런타임으로써 Node.js 는 확장성 있는 네트워크 애플리케이션을 만들 수 있도록 설계됨. 자바스크립트 런타임런타임 : 특정 언어로 만든 프로그램을 실행할 수 있는 환경.기존 자바스크립트는 브라우저 환경에서만 실행이 가능했음. Node.js는 브라우저 밖에서 자바스크립트를 구동할 수 있게 해줌. 논블로킹 I/O블로킹은 Node.js 프로세스에서 추가적인 JavaScript의 실행을 위해 JavaScript가 아닌 작업이 완료될 때까지 기다려야만 하는 상황. 이벤트루프를 통해서 노드는 싱글쓰레드이지만 비동기로 동시 작업이 가능함. 이벤트 루프이벤트 루프는 가능하다면 언제나 시스템 커널에 작업을 떠넘겨서 Node..
ERRORJavascript , ReactNative 등 에서 http 요청시 에러Access to XMLHttpRequest at '[ 요청 주소 ]' from origin '[ 응답 주소 ]' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.Network error원인 및 해결https://brunch.co.kr/@adrenalinee31/1
AWS Lightsail - Nodejs + mySql 배포1. cross-env 설치동적으로 process.env 변경 (개발 환경과 로컬 환경 분리) npm i -g cress-env && npm i cross-envpackage.json "scripts":{ "start": "cross-env NODE_ENV=production PORT=80 node ./bin/www", "dev": "node ./bin/www" } // start 에선 process.env.NODE_ENV 를 production 으로 변경하고 있음 // 변경하는 env 값은 app.js 에서 사용중 // 포트도 80 으로 변경 npm start // 배포환경 npm run dev // 개발 환경2. pm2 설치에러로 서버가 ..
express 프레임워크 기반 node js 서버 세팅express 패키지 전역 설치npm -i -g express-generator express 프레임워크 기반 워크스페이스 폴더 생성express [폴더명] --view=[뷰엔진] express 실행에 필요한 패키지 설치cd [폴더명] npm i 서버 실행// package.json 파일내에 scripts(사용자 정의 명령어) 안에 있는 // start 에 의해 npm run start로 실행가능 (run 생략가능) npm run start
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..