Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 노개북
- 클레이튼
- it5분잡학사전
- 정보처리기사
- 솔리디티
- ERC-721
- npm
- 카카오홈페이지클론
- 콜백함수this
- github
- web3.js
- Klaytn
- 정보처리기사실기
- 정보처리기사실기요약
- 이더리움
- 노마드코더
- 비트코인
- blockchain
- git
- 블록체인
- solidity
- it5
- 페이지클론
- ERC721
- 2021정보처리기사실기
- node.js
- Non-Blocking
- 카카오페이지클론
- ETH
- React
Archives
- Today
- Total
Be lazy, Be crazy
node.js HTTP Server 템플릿 제작(basic)(1) 본문
728x90
반응형
안녕하세요. 이번 post는 node.js에서 express 프레임워크를 이용해서 기본적인 서버 템플릿을 만들어 보려고합니다.
DB는 mysql과 연결할 것이며 ORM을 사용하려고합니다.(sequlize)
💡 첫 번째로 폴더를 생성합시다. 저는 server라는 root 폴더를 만들었습니다. 그리고 터미널위치를 root인지 확인하고 npm init -y
명령어를 실행해 주세요.
💡 package.json을 확인해 보시면 아래와 비슷한 구조로 되어있을거라 생각이 됩니다.
저는 nodemon, express, dotenv 라이브러리를 다운받았기 때문에 dependencies에 나와있습니다.
{
"name": "server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon app.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"dotenv": "^16.0.0",
"express": "^4.17.3",
"nodemon": "^2.0.15"
}
}
💡 그리고 server폴더 안에 app.js 파일을 만들어 주세. 여기서 파일명은 원하는대로 해도됩니다.
다만 지금 만드는 app.js는 가장기본이되고 시작이 되는 파일이라는 점을 명심해 주세요!
const express = require('express');
const app = express();
app.get('/',(req,res)=>{
res.send('안녕하세요, test중입니다.');
})
app.listen(5000, () => {
console.log('5___port started');
})
명령어
npm i express -> 꼭해주어야 합니다.
다음위에 코드를 app.js안에서 작성해주도록 합시다.
다음 터미널 창에서 node app.js
아래와 같은 모습이 보이고 있다면 port5000번에서 우리는 서버를 구동중이다.
그리고 get요청을 통해서 성공한다면 '안녕하세요 test중입니다.' 라는 string을 보내주었는데
화면에서 우리가 원하는 string을 볼수있음에 우리는 지금 간단하게 서버를 구축했다고 생각할 수 있다.
자 다음은 router객체로 라우팅 분리하기를 해보자.
먼저 왜 사용하는 것이 좋을까??? 그 이유는 app.js에서만 logic을 전부작성하면 나중에 수정 및 보완할 때 찾기도 힘들고 복잡해진다.
그렇기 때문에 router을 사용해서 해당되는 요청이 올때는 해당되는 폴더로 이동해서 여기서 logic을 처리해주세요.
물론 이 글을 보고 알아먹을거라고 생각하지는 않는다 아래 그림을 보면 바로 이해가 될거다.
route를 설정하는 이유는 각 로직을 구분하기 위해서이다.
가령 예를 들어서 서비스를 사용하는 user 정보를 관리하기 위한 로직과 물건을 주문하는 로직이 잇을때
한 곳에서 처리하는 것보다 유저route에서 유저관련 로직을 처리하고 주문route에서 주문에 관련된 로직을 다 처리하는 것이
버그가 생겼을 때에도 금방 확인 할 수 있다.
app.js에 추가해줘야 하는 부분
const accountRouter = require('./routes/AccountRouter')
const swapRouter = require('./routes/swapRouter')
app.use('/account', accountRouter)
app.use('/swap', swapRouter);
일단 각 분류한 router들을 import 해야합니다.
그리고 app.use는 이 앱에서 통상적으로 계속 이런식으로 처리할 것이다라는 함수입니다.
다시말해서 app.use('/,accountRouter) =>
이 함수는 '/account시작되는 요청이 들어오면 accountRouter에서 처리하겠습니다' 와 같다!
예시)
AccountRouter.js
const express = require('express');
const router = express.Router();
router.put('/', (req,res) => {
res.send('AccountRouter test 성공')
});
module.exports = router;
node app.js를 통해서 server를 구동한 다음 http://localhost:5000/account 로 접속시 다음과 같은 사진이 보인다면
정상적으로 route분리가 되었다고 생각하면 된다.
다음 시간에는 mysql과 orm(sequelize)를 사용하는 방법에 대해서 공부해 보도록합시다.
반응형
'Node.js' 카테고리의 다른 글
Google Sheet를 nodeJS로 연결하기 [googleapis] (1) | 2022.09.21 |
---|---|
discord.js를 이용해서 봇 만들기 [node.js discord 봇 제작] (0) | 2022.03.19 |
sync vs async? blocking vs non-blocking? (0) | 2021.12.10 |
[Node.js] Node.js와 Non-blocking (0) | 2021.12.10 |
Comments