HTTP: 80번 포트 사용 (https는 433번)
연결상태를 유지하지 않음
1)request 메세지
2) response 메세지
둘이 뭔가 비슷한 구조다.
1) express --view=ejs express_test
2) cd 작업폴더 로 이동한 후 npm install
3) nodemon은 g로 설치해뒀으니 node를 nodemon으로 바꿔주고
npm run start
"start" 를 "dev"로 바꿔놓고 진행했다.
req.params - /:id -> const{id} = req.params
req.query - /?name=lee -> const{name} = req.query
-> 이 두가지 방법은 보안이 취약(url에 나옴) but 빠르다
get, delete 메소드에서 많이 씀
req.body - const{ ~ } = req.body
-> 보안 중요 / post, put 메소드 주로 씀
req.file
const express = require("express");
const router = express.Router();
const usersRouter = require("./users/index");
router.use("/users", usersRouter);
라우터를 모듈화하는 방식으로( 프로젝트 규모가 커지면 관리가 어려우므로)
최상위 index.js 폴더에 usersRouter을 가져와서 쓰는 방식을 배웠다.
router폴더에 users폴더를 생성해주고 세부 내용을 안에 만들어 export해서 쓴다.
users폴더 내의 라우터는
const express = require("express");
const router = express.Router();
// 유저 생성
const usersArr = [];
router.post("/", (req, res) => {
const { name, age, love } = req.body;
const userIdx = usersArr.findIndex((item, index) => {
return item.name === name;
});
if (userIdx === -1) {
usersArr.push({
name,
age,
love,
});
console.log(usersArr);
res.status(200).json({
message: "유저가 성공적으로 생성 되었습니다.",
});
} else {
res.status(409).jseon({
message: "중복된 이름이 존재합니다",
});
}
});
module.exports = router;
유저 '생성'이 목적이니 method는 post!
라우터를 모듈화했으니 users 폴더 내의 라우터 url은 "/"으로 시작!
//유저 조회
router.get("/:name", (req, res) => {
const { name } = req.params;
const findUser = usersArr.findIndex((item) => item.name === name);
if (findUser === -1) {
res.status(404).json({
message: "유저 정보가 없습니다.",
});
} else {
const result = usersArr[findUser];
res.status(200).json({
message: "유저를 찾았습니다.",
data: {
name,
age,
love,
},
});
}
});
생성된 데이터를 조회하는 것이니 get을 사용!
const findUser = usersArr.findIndex((item, index) => {
return item.name === name;
});
처음에 findUser을 만들때 이렇게 작성을 했더니 에러가 떴다.
같은거 아닌가..
이해가 안된다ㅠ
//유저 수정
router.put("/:idx", (req, res) => {
const { idx } = req.params;
const { name, age, love } = req.body;
if (usersArr[idx]) {
// 유저가 있을 경우
usersArr[idx] = { name, age, love };
res.status(200).json({
message: "수정 완료",
data: usersArr[idx],
});
} else {
res.status(400).json({
message: "유저를 찾지 못했습니다.",
});
}
});
url 에 params를 이용한 접근
등 등 여러가지 만들어 보았다.
중요한건 라우터를 모듈화하는 것과 메소드를 선택하는 것
밑의 로직들은 아직 Js가 익숙하지 않아서 많이 헤매고있다 ㅠ
식별자 / 지시자(어디 있는지 알려주기 위함)
URL 은 URI에 포함되는 개념이다.
끝에 확장자(html, js .....)가 있으면 url
Create Read Update Delete
컴퓨터 소프트웨어의 기본적인 데이터 처리 기능
Application Programming Interface
웹 API는 웹 애플리케이션 개발에서 다른 서비스에 요청을 보내고 응답을 받기 위해 정의된 명세
REpresentational State Transfer
웹의 장점을 최대한으로 활용할 수 있게 하는 아키텍처
URI 에 resource의 수준별로 설계하는 것이라고 이해했다..
첫 번째, URI는 정보의 자원을 표현해야 한다.
두 번째, 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.
이 둘이 제일 중요함
내일은 흐름제어에 대해 배운다.
수업 막바지에 찍먹정도만 했는데 벌써 어려웠다...
고생합시다
잘 보고 갑니다 열심히 하는 모습 너무 보기 좋아요 findIndex 함수에 대한 이해가 제대로 이루어지길 바라요