본문 바로가기

개발/Node.js

(13)
[nodejs] Multer를 이용한 파일 업로드 파일 다루는 방식을 한번 정리해보고 싶어서 블로그를 작성해본다. 파일 업로드는 일단 Multer라는 모듈을 사용할 것이다. Multer는 파일 업로드를 위해 사용되는 multipart/form-data 를 다루기 위한 node.js 의 미들웨어이다. Multer Reference를 참고해보자. https://github.com/expressjs/multer/blob/master/doc/README-ko.md GitHub - expressjs/multer: Node.js middleware for handling `multipart/form-data`. Node.js middleware for handling `multipart/form-data`. - GitHub - expressjs/multer: No..
[nodejs] 오류 처리 미들웨어 사용법 (비동기) 이전글 : 미들웨어 개념, 종류, 사용법 https://datobi.tistory.com/34 [nodejs] Middleware 미들웨어 개념, 종류, 사용법(에플리케이션 레벨 미들웨어, 라우터 레벨 미들웨어 미들웨어란? 미들웨어는 요청(Request)과 응답(Response) 도중에 다른 함수로 접근할 수 있는 함수이다. 미들웨어 함수는 일반적으로 next라는 이름의 변수로 표시된다. 또한 app.use() 나 app.Method() - app.g datobi.tistory.com 오류처리 미들웨어 다른 미들웨어 함수와 동일반 방법으로 정의할 수 있지만, 오류 처리 함수는 3개가 아닌 4개의 인수, 구체적으로 말하면 (err, req, res, next) 시그니처를 갖는다는 점이 다르다. 오류처리 미..
[nodejs] Middleware 미들웨어 개념, 종류, 사용법(에플리케이션 레벨 미들웨어, 라우터 레벨 미들웨어) 1 미들웨어란? 미들웨어는 요청(Request)과 응답(Response) 도중에 다른 함수로 접근할 수 있는 함수이다. 미들웨어 함수는 일반적으로 next라는 이름의 변수로 표시된다. 또한 app.use() 나 app.Method() - app.get(), app.post()... 함수를 통해서 바인딩 된다. 나는 token을 이용한 로그인을 구현하다가 미들웨어를 공부하게 되었다. 정의 함수 정의와 비슷하게 정의한다. (그림참고) 미들웨어를 사용하는 간단한 예제를 실행해보겠다. app.js let myMiddleware = function(req, res, next){ // 미들웨어 선언 console.log('이곳을 거쳐갑니다.'); next(); }; app.use(myMiddleware) // 미들웨어..
nodejs를 이용한 페이징 처리 (DB 연결) Step3 Step1 : https://datobi.tistory.com/28?category=948178 Step2 : https://datobi.tistory.com/29?category=948178 Step3에서는 DB를 연결 했다. 코드가 많이 바뀌진 않았다. 수정한 코드는 db/index.js와 view/index.ejs, routes/index.js 이다 그리고 DB 데이터 몇가지를 추가하였다. DB는 postgre를 사용하였다. 더보기를 누르면 해당 데이터를 추가 할 수 있다. 더보기 CREATE TABLE "student" ( "idx" INTEGER NOT NULL, "name" VARCHAR NOT NULL, "age" INTEGER NOT NULL, "grade" CHAR(1) NOT NULL,..
nodejs를 이용한 페이징 처리 (페이징 버튼 처리) Step2 Step1 : https://datobi.tistory.com/28?category=948178 Step2에서는 하단부의 버튼 처리를 하였다. 한 페이지에 보여질 버튼은 총 5개로 설정하였고, 게시글은 10개로 설정하였다. DB 연결 전이라 전체 페이지를 임의로 설정하였다. index.ejs currentPage : currentSet : startPage : endPage : startPost : endPost : idx 1) {%> « » - 게시글 번호 : 보통 DB에서 해당 데이터만 가져오기 때문에 가져온 데이터 길이만큼 반복문을 돌리면 된다. 그렇기 때문에 DB연결 후 startPost와 endPost는 필요가 없다. 하지만 지금은 게시글이 잘 넘어가는지 보여주기위해 추가하였고 한 페이지에서 보..
nodejs를 이용한 페이징 처리 (버튼 누를시 게시글 갱신) Step1 처음 페이징을 접했을 때 꽤나 애먹었던 적이 있고 아직도 모호한 점이 있어서 페이징 공부와 정리를 하고자 단계별로 페이징처리를 하는 방법을 포스팅 한다. Step 1에서는 페이지 버튼을 눌렀을 때, 게시물 번호가 그에 맞춰 바뀌는 것을 만들어 볼것이다. 예를들어, 1 버튼을 눌렀을 때 1~10까지의 게시물이, 2 버튼을 눌렀을 때 11~20까지의 게시물을 보여줘야 한다. 한 페이지당 게시물은 10개로 잡았다. 요번 Step에서는 db연동을 하지 않고 단순히 게시물 번호를 잘 가지고 오는 것에 목표를 두어 구현하였다. index.ejs idx
Postgre와 nodejs(Express.js) 연동 - 2 (모듈화 및 데이터 추출) 앞서 1 코드에서 폴더명을 바꾸었다. config-> db 그리고 db.js를 config.js로 바꾸었다. 이런 형태이다. 1. config.js를 모듈화 하기 const { Pool } = require('pg') const pool = new Pool( { host: process.env.POSTGRE_HOST, user: process.env.POSTGRE_USER, password: process.env.POSTGRE_PW, port: process.env.POSTGRE_PORT, database: process.env.POSTGRE_DB } ) module.exports = { query: (text, params, callback) => { return pool.query(text, para..
Postgre와 nodejs(Express.js) 연동 - 1 (연결확인 및 .env 설정) 전제조건 postgre가 설치되어 있어야 한다. express js 모듈을 생성해야한다. (https://datobi.tistory.com/3) 테스트할 테이블이 생성되어 있어야 한다. 나는 heidiSQL을 사용중이고 student라는 간단한 테이블을 생성했다. CREATE TABLE "student" ( "idx" INTEGER NOT NULL, "name" VARCHAR NOT NULL, "age" INTEGER NOT NULL, "grade" CHAR(1) NOT NULL, "address" VARCHAR NOT NULL, PRIMARY KEY ("idx") ); INSERT INTO "student" VALUES (1, '김똘똘', 10, 'B', '서울시'); INSERT INTO "stude..