목록Web/Node.js (17)
Slow but steady wins the race
Module 코드를 작성하는 과정에서 코드의 길이가 길어지면 정리정돈할 필요성이 생김 - 가장 큰 도구 : module nodejs/mpart.js var M = { v:'v', f:function(){ console.log(this.v); } } module.exports = M; module을 생성하기 위해서 exports 전역 객체를 사용 muse.js var part = require('./mpart.js'); part.f(); module을 불러오기 위해서 require( ) 메소드 사용
객체지향 프로그래밍 목적 : 코드를 깔끔하게 복잡하지 않게 정리하는것 refactoring : 과거의 코드를 효율적으로 바꾸는 것 object를 통해 template 정리 template라는 객체를 만들고 객체 안에서 property를 정의 function templateHTML(title, list, body, control){ return ` WEB ${list} ${control} ${body} `; } function templateList(filelist){ var list = ''; var i = 0; while(i < filelist.length){ list = list + `${filelist[i]}`; i = i + 1; } list = list+''; return list; } var ..
삭제버튼 구현 control 부분에 삭제 할 수 있는 버튼을 추가 else { fs.readdir('./data', function(error, filelist){ fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){ var title = queryData.id; var list = templateList(filelist); var template = templateHTML(title, list, `${title}${description}`, ` create update delete` ); response.writeHead(200); response.end(template); }); }); } } 글을 삭제 할 때, 따로 보여줄 ..
수정링크 생성 (홈페이지에서는 create만 보이고 각 페이지에서는 update가 보이도록 하기 ) temlpateHTML{ } 안에 update 추가 templateHTML 에서 control을 추가 create update 를 ${control}로 수정 function templateHTML(title, list, body, control){ return ` WEB ${list} ${control} ${body} `; } 모든 메뉴가 보이는 부분에 a 태그로 링크를 설정한다. else { fs.readdir('./data', function(error, filelist){ fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){ ..
UI 만들기 기존에 있던 if(pathname === '/') 이외에 /가 아닌 create일 때의 조건문 생성 해당 조건문 내용 : 글을 작성할 수 있는 페이지 작성 , 기존의 template에 html의 form 태그 추가 else if(pathname === '/create'){ fs.readdir('./data', function(error, filelist){ var title = 'WEB - create'; var list = templateList(filelist); var template = templateHTML(title, list, ` `); response.writeHead(200); response.end(template); }); Post 방식으로 전송된 데이터 받기 "node...
Package Manger : 소프트웨어들을 생성, 설치, 업데이트, 삭제, 등을 관리해 주는 프로그램 NPM : Node.js 에서 가장 광범위하게 사용, 기본적으로 node.js를 설치할 때 함께 설치되는 package manger https://pm2.keymetrics.io/ PM2 - Home Advanced process manager for production Node.js applications. Load balancer, logs facility, startup script, micro service management, at a glance. pm2.keymetrics.io pm2 : node.js를 하나하나 껐다 켰다를 반복할 필요 없이 변화가 생기면 자동으로 껐다 켜주는 역할 npm..
synchronous (동기적) 우리가 일을 할 때를 생각해보자 일 10분 -> 일 2시간 -> 일 1시간 -> 일 40분 일이 다 끝날때까지 기다리다가 다 끝나면 다른 일 시작 (일이 오랫동안 처리되어야 하는 경우에도 기다렸다가 다음 일 처리) asynchronous (비동기적) - 효율적 but 복잡 일 10분 -> 일 2시간 -> 일 1시간 일이 끝날때까지 기다리지 않고 다음 일 진행 (병렬적으로 동시에 여러가지 일 처리) 동기 & 비동기 가 코드 level 에서 어떤 차이를 갖는지 ? https://nodejs.org/dist/latest-v12.x/docs/api/https://nodejs.org/dist/latest-v12.x/docs/api/fs.html Index | Node.js v12...
완전히 똑같은 코드는 개선의 여지가 있음 - " 중복 제거" var http = require('http'); var fs = require('fs'); var url = require('url'); var app = http.createServer(function(request,response){ var _url = request.url; var queryData = url.parse(_url, true).query; var pathname = url.parse(_url, true).pathname; if(pathname === '/'){ if(queryData.id === undefined){ fs.readdir('./data', function(error, filelist){ var title = ..