<-->
본문 바로가기

반응형

프로그래밍

(16)
부트 스트랩 기본 틀 Hello, world! jquery-slim 버전은 ajax를 지원하지 않는다. 그래서 부트스트랩 공식문서의 기본틀에서 살짝 수정했다.
ejs와 레이아웃(express template) ejs (Embedded JavaScript) JavaScript로 HTML 마크 업을 생성 할 수있는 간단한 템플릿 언어 다시말해 view를 동적으로 생성하는 템플릿 언어이다! (HTML안에서 자바스크립트(함수,변수) 사용한다고 생각하면됨) (HTML을 알고있다면 다른 템플릿 언어보다 훨씬 쉽게 익힐 수 있다.) 템플릿 엔진 .ejs파일을 HTML로 변환 시켜준다. app.set메소드로 템플릿 엔진을 설정해주면 된다. app.set('view engine','ejs'); ejs 문법 흐름 제어문 ex) 변수 값 ex) 예약어 ex) 다른 view파일을 불러 옴 ejs 예시 아래 코드들은 ejs를 사용하여 HTML내에서 javascript를 실행하는 예시다, (.ejs파일에서만 ejs문법을 쓸수있다) c..
Route Parameter(/:id)에 대하여 cast to ObjectID for value "new" at path "_id" for modle "Subscriber" 라는 에러가 났다. 관련 코드들의 문법을 확인해봐도 문제가 없었다. 일단 닥치는대로 해보자라는 생각으로 I. 문제의 코드 router.get("subscriber/new")를 router.get("/subscribers/new")로 했더니 정상적으로 실행이됐다. 요청 uri을 잘못썼나 확인해봤는데 이상이 없었다. II. router.get("subscriber/new") 코드의 줄 위치를 라우터 최상위로 옮겨봤더니 정상적으로 실행이됐다. 순서에 문제가있다고 생각한 나는 한줄씩 내리면서 실행해보다가 다음 상태에서 문제점을 발견했다. router.get("/subscriber/:id"..
미들웨어 구조와 기본 미들웨어 세팅 express는 미들웨어 구조를 사용하는 웹 프레임워크이다. HTTP 통신 -> 미들웨어 -> NodeJS 실행 순으로 실행된다. 1. body-parser npm install body-parser app = express(); app.use( express.urlencoded({ //bodyParser을 기반으로한 express버전 구문분석 메소드 extended: false, }) ); // 인코딩된 URL 구문 분석 app.use(express.json()); //bodyParser을 기반으로한 express버전 구문분석 메소드 2. ejs npm install ejs app.set("view engine","ejs); //애플리케이션 설정 메소드, view engine을 ejs로 사용한다고 명시..
(express+ nodeJS) CR"UD"작업의 필수 패키지 -> method-override CRUD(생성 읽기 업데이트 삭제) CRUD의 대부분은 VIEW에서 이나 을 통해 요청을 보내고 라우터가 요청을 읽어서 로직(콜백함수)를 통해 응답해준다. 하지만 , 의 메소드(제출방식) 속성에는 "POST","GET" 두가지 밖에 없기때문에 생성,읽기 작업밖에 할 수 없다. 업데이트와 삭제 작업을 하려면 요청 메소드 GET이나 POST을 PUT 또는 DELETE으로 매핑시켜주는 도구가 필요하다. npm i method-override -S 를 먼저 해주자 const methodOverride = require("method-override"); app.use(methodOverride("", { methods: ["POST", "GET"] }) methods는 요청에 사용될 메소드를 미리 저장해 놓는 ..
HTTP 모듈로 '간단한' 웹서버 구축하기 웹서버 : 클라이언트가 요청한 정보를 서버의 로직으로 처리하여 여러가지 형태로 응답해주는 도구 const http = require("http"), httpStatus = require("http-status-codes"), port =3000; const app =http.createServer((req,res)=> { //서버 인스턴스 생성(HTTP통신을 위한 도구) res.writeHead(httpStatus.OK, { //응답 컨텐츠의 기본 속성 설정 "Content-Type":"text/html" }); console.log(`method: ${req.method}`); console.log(`url: ${req.url}`); res.write(' write response! '); //응답중 ..
모듈과 패키지 Node를 구조적으로 사용함에 있어서 가장 기본적이면서 중요한 개념인거같다. I. 모듈과 모듈의 속성 모듈: 어떠한 한가지 기능을 동작하는것과 관련된 자바스크립트 코드의 모임이다. 모듈 예시) 문자열 개수를 세주는 코드 module.exports: exports속성에 변수와 변수값을 붙여서 export해준다. module.require(): export된 모듈의 코드를 읽어들인다. II. NPM(node package manager) 패키지: 어떠한 기능과 관련된 모듈들의 모임이다. 패키지 예시) 웹 개발을 편하게 해주는 모듈들을 가진 익스프레스 패키지 명령어 npm init: nodeJS 프로그램 초기화 및 package.json 생성 npm install : 패키지 설치 설치 플래그 --save: 프..
(mac 전용)변경된 mongoDB 세팅 및 기본 명령어 맥에서 mongoDB 세팅하는데 많은 고생을했다. 언젠가 다시 설치할지도 몰라서 적어놓는다. I. 맥에서 몽고디비 설치가 어려웠던 이유 brew install mongodb 이 명령어는 이제 사용할 수 없다. mongoDB 라이선스문제로 Homebrew-core에서 삭제됐기 때문이다. 이제는 사용자정의 homebrew 탭(?)에서 다운받을 수 있다고한다. (자세한내용은 아래 링크에서 확인) 출처: https://github.com/Homebrew/homebrew-core/pull/43770 Remove mongodb by fxcoudert · Pull Request #43770 · Homebrew/homebrew-core To our users: if you came here because mongodb..

반응형