728x90
* 개발환경 - 윈도우, VS Code
1. jquery, bootstrap cdn 가져와서 index.ejs에 추가
<!DOCTYPE html>
<html>
<head>
<meta charest="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<title>Document</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous">
</script>
</body>
</html>
앞으로 새 ejs 파일 만들 때 index.ejs 파일 복사
* cdn: 콘텐츠 전송 네트워크. 웹사이트 접속자가 콘텐츠를 다운로드할 때 자동으로 가장 가까운 서버에서 다운할 수 있도록 함.
728x90
2. login.ejs 파일 만들고 로그인 요소 추가.
<div class="container mt-4">
<form action="/login" method="POST">
<fieldset>
<legend>로그인</legend>
<div class="mb-3">
<label for="id" class="form-label">아이디</label>
<input type="text" id="id" class="form-control" name="id">
</div>
<div class="mb-3">
<label for="pw" class="form-label">비밀번호</label>
<input type="password" id="pw" class="form-control" name="pw">
</div>
<button type="submit" class="btn btn-outline-dark">로그인</button>
<a href="/member/register" class="btn btn-outline-success">아이디가 없나요?</a> <!--회원가입 페이지로 이동-->
</fieldset>
</form>
</div>
3. server.js 에서 라우팅.
app.get('/member/login', (req, res)=>{
res.render('login.ejs');
})
* 라우팅: 네트워크에서 경로를 선택하는 프로세스
app.get('/경로') 를 통해 ejs 파일로 경로를 지정함.
4. localhost:8080/member/login 으로 접속
그냥 /login 으로 지정해도 됨.
express에서 제공하는 router 기능으로 라우팅 분리할 거라 /member/login으로 함.
5. server.js에 라우터 추가.
app.get('/member/register', (req, res)=>{
res.render('register.ejs');
})
register.ejs는 회원가입 페이지로 쓸거. 코드는 일단 로그인 코드 그대로 복사함
server.js에 코드가 더 많아질거라 위같은 코드들을 따로 빼줄 예정
6. node 프로젝트에 routes 폴더 만들고 그 안에 member.js 파일 생성.
그 안에 아래 코드를 작성한다.
var router = require('express').Router();
router.get('/login', (req, res)=>{
res.render('login.ejs');
})
router.get('/register', (req, res)=>{
res.render('register.ejs');
})
module.exports = router;
server.js에서 썼던 코드에서 app을 router로 바꾸고, 경로에서 /member를 뺐다.
7. server.js에 아래 코드 작성.
app.use('/member', require('./routes/member.js'));
// /member로 시작되는 경로가 요청될 경우 routes 폴더의 member.js 에 있는 라우터를 사용
이제 server.js에 있는 라우터들은 필요없으니까 삭제한다.
테스트해보니 잘 작동된다.
이렇게 하면 프로젝트가 더 깔끔하다.
728x90
'Node.js' 카테고리의 다른 글
[Node.js] http 모듈로 서버 구축하기(1) - http 모듈, fs 모듈 (0) | 2024.03.04 |
---|---|
node.js와 mongoDB로 웹 만들기 (5) 아이디 중복체크(ajax) (0) | 2023.01.17 |
node.js와 mongoDB로 웹 만들기 (4) mongoDB 연결 (0) | 2023.01.13 |
node.js와 mongoDB로 웹 만들기 (2) 서버 구축 및 실행 (0) | 2023.01.11 |
node.js와 mongoDB로 웹 만들기 (1) node.js, npm 설치 (0) | 2023.01.10 |