[TIL] 23/04/11

HyeongA·2023년 4월 11일

TIL

목록 보기
17/25
post-thumbnail

Day : 18
React : 8

1. ExpressJS setting (nodemon)

  • 사용법
  1. npm init
  2. { "name": "express-3", ( enter치면 다음 항목으로 내려감)
    ...
    "author": "ME",
    "license": "MIT" }
  3. npm install express --save (=npm i express) ;차이 없음
  4. app.js 생성
  5. node app.js ; 서버 작동 시작
  6. Postman에서 http://localhost:지정번호 로 확인

  • nodemon 설치 : 서버 자동으로 새로고침 해줌
  1. npm i -D nodemon ( ; D :dependency ;개발모드)
  2. package.json파일에 "dev": "nodemon app.js" 명령어 등록
  3. app.js 코드 작성
  4. npm run dev

2. ExpressJS 사용 (CRUD)

  • App.js
const express = require("express");  //import기능
const app = express();
const port = 3010;					//port번호 마음대로 지정 
app.get("/", (req, res) => {
  res.send("Hello, Express!");
});									// get (path,callback)
app.listen(port, () => {
  console.log(`Server listening on port: ${port} 🚀`);
});

: get요청은 브라우저에서 http://localhost:3010 로 조회가능
: 나머지 요청은 Postman사용하여 확인
: 변경사항이 있을때마다 서버를 켰다 꺼줘야함 → nodemon설치 권장
: CRUD구현 : get읽기, post생성, put(전체교체)업데이트,delet삭제


CRUDHTTP MethodREST API예시
Createpost/게시물 작성
Readget/게시물 전체 조회
Updateput/:id특정게시물 수정
Deletedelet/:id특정 게시물 삭제

3. ExpressJS - Routing

  • routing을 이용하면 파일들을 좀 더 효율적으로 API를 관리 할 수 있다.
    : app.use("/user", userRouter) use 미들웨어를 사용하면 된다.
    ※ 미들웨어 : 서로 다른 애플리케이션이 서로 통신하는 데 사용되는 소프트웨어

App.js

const express = require("express");
const userRouter = require("./routes/user");  //라우팅 할 파일 import
const tweetRouter = require("./routes/tweet");  //라우팅 할 파일 import
const app = express();
const port = 3010;
app.use("/user", userRouter);     //미들웨어
app.use("/tweet", tweetRouter);    //미들웨어
app.get("/", (req, res) => {
  res.send("Hello, Express!");
});
app.listen(port, () => {
  console.log(`Server listening on port: ${port} `);
});

user.js

const express = require("express");
const router = express.Router(); //라우터로 만듦
router.get("/:id", (req, res) => {
  console.log(req.params); //결과가 cmd창으로 들어옴 (backend)
  res.send("특정트윗조회"); //결과 postman에 출력 (prontend)
});
router.get("/", (req, res) => {
  res.send("전체트윗조회");
});
router.post("/", (req, res) => {
  res.send("게시물 생성");
});
router.put("/:id", (req, res) => {
  res.send("특정 게시물 수정");
});
router.delete("/:id", (req, res) => {
  res.send("게시물 삭제");
});
module.exports = router;

자세한 코드 : github : https://github.com/hyeongga/React_Study.git


  • Postman에서 GET실행 결과

➕ Map함수 vs Filter함수
: 같은 조건을 적용하였을때 Filter함수는 조건에 충족하는 값들만 출력한다. 반면 Map함수는 모두 출력하는데 이때 충족하지 않는 값은 undefined로 나타낸다.

profile
Today I Learned

0개의 댓글