nodejs

[Node.js] 게시판 만들기 (목표설정,사용모듈소개)

jackypark 2022. 9. 22. 22:28

목표 설정:

내가 방학 때 공부한 jsp로 만든 간단 쇼핑몰을 만든 것을 node js로 바꿔 보는 것이 목표입니다.

참고: https://jackycode.tistory.com/52?category=1032772 

 

팀 프로젝트 - 유기동물 입양+쇼핑몰+ 커뮤니티 사이트

Jsp 및 js html css 아무것도 모르는 상태로 무작정 공부하고자해서 만든 첫 웹프로젝트이다. 첫날에 인터넷으로 뭐할지 구상후 필요한 책을 학교 도서관에서 대출하였다. 1. 프로젝트 기획안 개요 :

jackycode.tistory.com

우선 다 만든 것은 저번 한 쇼핑몰 부분에서 커뮤니티 부분을 nodejs로 구현했습니다.

 

 

 

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

 

우선 내가 사용한 모듈에 대해서 소개하겠다.

// Express 기본 모듈 불러오기
var express = require('express');
var http = require('http');
var path = require('path');

//Express의 미들웨어 불러오기등 사용할 모듈
var bodyParser = require('body-parser');
var static = require('serve-static');
var cookieParser = require('cookie-parser');
var expressSession = require('express-session');
var router = express.Router();

var mysql=require('mysql2');//mysql db를 사용할수 있는 mysql모듈가져오기

//ejs 모듈 세팅
app.set('view engine', 'html');
//화면 enigine을 ejs로 설정한다
app.engine('html', require('ejs').renderFile);

우선 기본으로 사용한 모듈들은 이전에 포스팅 한 웹서버 구축하기에 설명했었다.

또한 웹서버 구축 코드는 이번 포스팅에서 생략하도록 하겠습니다. 코드는 기능 위주만 포스팅하겠습니다.

https://jackycode.tistory.com/81

 

[node.js] 웹서버 만들기

이번 내용은 node.js를 사용해서 다양한 방법으로 서버를 구축해보는 것에 대해 포스팅하겠습니다. 웹서버에서 사용자의 정보를 관리하는 기능을 하나씩 만들어 보면서 웹 서버의 기본 기능을 차

jackycode.tistory.com

 

그 외에 사용한 모듈은 mysql2 모듈과 ejs 모듈이 있다.

 

Mysql2 모듈을 사용해서 mysql 데이터베이스와 연동을 하였다.

//mysql 데이터베이스 연결 설정
var pool=mysql.createPool({
    connectionLimit:10,
    host:'localhost',
    user:'root',
    password:'1111',
    database:'test',//db 스키마명
    debug:false
});

우선 mysql 모듈을 사용하는데 난관을 마주쳤다.. 처음에는 mysql모듈을 설치하고 연결을 시도했지만 연결이 계속 실패했다. 그래서 해결방법이 mysql 모듈 업그레이드 버전인 mysql2 모듈을 설치하고 작동했더니 정상적으로 연결에 성공했다.

참고: https://velog.io/@woals3000/mysql-vs-mysql2

 

mysql vs mysql2

sequlize 스프린트를 진행하면서 알게된 mysql2

velog.io

 

EJS 모듈을 템플릿 엔진으로 선택하였다.

//ejs 모듈 세팅
app.set('view engine', 'html');
//화면 enigine을 ejs로 설정한다
app.engine('html', require('ejs').renderFile);

템플릿 엔진이란, 템플릿을 읽어 엔진의 문법과 설정에 따라서 파일을 HTML 형식으로 변환시키는 모듈입니다.

Node.js에서 사용하는 템플릿 엔진은 매우 다양한데요.

저랑 같이 스터디한 인원중 한 명은 pug라는 템플릿 엔진을 선택했습니다.

pug사용 스터디 인원 블로그:https://manybean.tistory.com/entry/Nodejs-Pug-partials

 

[Node.js] Pug partials

Pug의 큰 부분을 나누어 partial로 관리하는 방법에 대해 알아보자 test.pug - 다음 코드는 pug를 partial로 관리하지 않았을 때 코드 doctype html html(lang="ko") head meta(charset="UTF-8") meta(http-equiv=..

manybean.tistory.com

 

저는 pug를 사용하지 않고 ejs모듈 택한 이유는 HTML에서  jsp때 했던 것처럼  "<% %>"를 사용해서 서버의 데이터를 사용하거나 코드를 실행할 수 있기 때문입니다. (한마디로 친숙해서 선택!)

 

코드 설명할 때 보여줄 테지만 render 메서드를 사용해서 페이지로 데이터를 보냅니다.

 

다음포스팅에는 코드를 보면서 설명 하도록 하겠다.