목록HTML & CSS & JS/Node.js (8)
가자미의 개발이야기
1. dotenv .env 파일을 읽어서 process.env로 만듦 키=값 형식으로 구성 비밀 키를 소스코드와 분리하기 위함 2. morgan 서버로 들어온 요청과 응답을 기록해주는 미들웨어 개발환경에서는 'dev', 배포 환경에서는 'combined'를 애용 app.use(morgan('dev')); 3. static 정적인 파일들을 제공하는 미들웨어 인수로 정적 파일의 경로를 제공 파일이 있을 때 fs.readfile로 읽어들일 필요가 없음 요청하는 파일이 없을 경우 next를 호출해 알아서 다음 미들웨어로 넘어감. 파일을 발견했다면 다음 미들웨어는 실행되지 않음 컨텐츠 요청 주소와 실제 컨텐츠의 경로를 다르게 만들 수 있음. app.use('요청 경로', express.static('실제 경로')..
1. 미들웨어 #익스프레스는 미들웨어로 구성됨 요청과 응답의 중간에 위치하기 때문에 미들웨어라고 함 위에서 아래로 순서대로 실행됨. 미들웨어는 req, res, next가 매개변수인 함수 req = 요청, res = 응답, next = 다음 미들웨어로 넘어감 미들웨어가 실행되는 경우 app.use(미들웨어) 모든 요청에서 미들웨어 실행 app.use('/abc', 미들웨어) abc로 시작하는 요청에서 미들웨어 실행 app.post('/abc', 미들웨어) abc로 시작하는 post 요청에서 미들웨어 실행 2. 에러처리 미들웨어 #에러가 발생하면 에러 처리 미들웨어로 매개변수가 err, req, res, next 총 4개 err에 에러에 관한 정보 res.status 메서드로 http 상태 코드 지정 가능..
1. npm i express 명령어로 express 설치 2. npm init 명령어로 package.json 생성 3. app.js 작성 const express = require('express'); const app= express(); app.set('port', process.env.PORT || 3000); app.get('/', (req, res)=>{ res.send('hello express'); }); app.listen(app.get('port'),()=>{ console.log(app.get('port'), '번 포트에서 대기 중'); }); app.set('port', 포트) = 서버가 실행될 포트 지정. app.get('주소', 라우터) = GET 요청이 올 때 어떤 동작을 할..
const port = 3000, http = require("http"), httpStatus = require("http-status-codes"), app = http.createServer(); app.on("request",(req, res)=>{//이벤트리스너 res.writeHead(httpStatus.OK,{ "Content-Type":"text/html" }); let responseMessage ="This is message.; res.end(responseMessage); });
const port =3000, //3000이라는 숫자는 별 의미 없음 http = require("http"), //http모듈을 변수에 저장() httpStatus = require("http-status-code"), //http 상태 코드를 나타냄 app = http.createServer((request,response)=>{ //서버 만들고 변수에 저장 //이벤트가 발생할 때마다 동작하는 콜백 함수 console.log("Received an incoming request!"); response.writeHead(200, { "Content-Type":"text/html" });//http요청을 성공적으로 받았음, http 헤더의 기본속성 정의 let responseMessage = "Hell..
npm은 외부 패키지의 관리 역할을 한다. npm 명령어 설명 npm init 애플리케이션을 초기화하고 package.json 파일을 생성 npm install 노드js 패키지 설치 npm pulish 만든 패키지를 npm패키지 커뮤니티에 저장 및 업로드 npm start 애플리케이션의 실행(반드시 package.json이 있어야함) npm stop 실행 중인 애플리케이션 중지 npm docs 지정된 패키지에 대한 가능한 문서페이지 열기 그 외 npm install 뒤에 --save를 쓰면 애플리케이션에 패키지가 종속 모듈로 설치. 뒤에 --global을 붙이면 패키지를 컴퓨터 상의 전역 패키지로 설치. 모듈 : 단일 컨셉트 기능 라이브러리와 관련된 코드를 포함하는 개인 javascript파일 패키지 :..
REPL은 노드js의 대화식 셸이다. 노드가 설치된 경우 터미널에서 node를 입력하면 자연스럽게 사용가능하다. REPL 명령어 설명 .break(.clear) REPL 세션 내 블록에서 빠져나옴. 코드 블록에서 빠져나올 때 유용. .editor 멀티라인 코드를 입력할 수 있는 내부 에디터를 연다. ctr+d로 저장하고 빠져나올 수 있다. .exit REPL 세션을 종료한다. .help 명령어나 유용한 팁을 보여준다 .load 로컬 파일명과 같이 사용되며 REPL이 코드 파일로 액세스하도록 한다. .save REPL 세션의 코드를 새로운 파일에 저장한다.
이벤트 기반 이벤트 발생시 미리 지정해둔 작업을 수행하는 방식. 이벤트 루프 : 호출된 콜백 함수의 실행 순서를 결정, 노드가 종료될 떄까지 이벤트 처리를 위한 작업을 반복 태스크 큐 : 콜백 함수들이 기다리는 공간. 백그라운드 : 타이머나 IO 작업 콜백 또는 이벤트 리스너들이 대기하는 곳 논블로킹 I/O node.js는 오래걸리는 작업을 백그라운드에 두고 다음 코드가 먼저 실행시키고 그 함수가 태스크 큐를 거쳐 호출 스택으로 올라오게 하는 방식으로 작업을 효율적으로 운용할 수 있다. 이를 논블로킹 방식이라 한다. 블로킹 방식의 코드 function lonRunningTask(){ //오래 걸리는 작업 console.log('작업 끝'); } console.log('시작'); longRunningTas..