유튜브 강의를 보면서 따라해본 노드 express로 서버 띄워보기
app.js파일 만들기
require명령어로 express라는 모듈을 다운받음
const express = require("express");
express를 실행시켜서 app변수안에 넣어줌
const app = express();
listen 명령어로 서버를 띄운다 (포트번호, 콜백함수)
app.listen(3000,() => {console.log("서버가동");});
3000번 포트에 서버를 띄우고 콘솔에 "서버가동"을 찍어줘라
터미널에서 서버를 열어준다. -> node 명령어로 app.js파일을 js로 읽어준다.
>>> node app.js
node는 js파일을 v8엔진을 사용해서 코드를 해석하는 명령어다. v8엔진: 자바스크립트 컴파일러같은거!
바로 실행하면
Error: Cannot find module 'express'가 뜬다.
npm(노드패키지매니저)로 express 모듈을 설치해준다
>>> npm install express -s(--save)
npm은 노드 설치시 자동으로 함께 설치된다.
-s 옵션을 줘야 package.json파일로 설치한 모듈들 관리가 쉽다
npm install을 하면 node_modules에 express모듈이 설치되면서 그걸 가동하기 위해 필요한 모듈들까지 다 설치됨
이제 node_modules에 설치된express를 require("express")를 통해 찾을수 있음.
package.json에서는 설치된 패키지들을 확인할 수 있다.
node app.js
서버가 가동되었다.
localhost:3000에 접속하면
이런 화면이 뜬다. /(루트)경로로 get요청이 들어왔을때 동작을 정해주지 않아서이다.
app.</http 메서드>(경로, 실행할동작(콜백함수))
app.get("/", (req, res) => {
res.send("여기는 루트입니다"); // 응답으로 보내줄 메세지
});
파라미터로 req, res를 받는다. req는 들어오는 요청이고 res는 응답이다.
루트 경로로 get요청이 들어오면 (요청을 해석하지 않고)"여기는 루트입니다"라는 메세지를 보내준다.
다시 요청을 보내보면(브라우저로 접속)
응답이 잘 보내진 것을 알 수 있다.
다른 경로(/login)도 만들어보면
app.get("/login", (req, res) => {
res.send("여기는 로그인입니다")
});
app.js
const express = require("express");
const app = express();
app.listen(3000,() => {console.log("서버가동");});
app.get("", (req, res) => {
res.send("여기는 루트입니다") // 응답으로 보내줄 메세지
});
app.get("/login", (req, res) => {
res.send("여기는 로그인입니다")
});
💡
프로젝트 할때 프론트엔드 코드를 받아서 직접 시연해볼 일이 있었는데 npm install을 하면 많은게 설치되면서 자동으로 파일이 주루루룩 생기는데 이게 지금 다 내 컴퓨터에 설치되는건가 싶었었다.
왜냐면 프로젝트를 할때만 해도 패키지관리툴을 이용하지 않고 miniconda로 가상환경을 만들어서 그 안에 필요한 모듈들을 다 까는 방법으로 프로젝트 관리를 했기 때문이다.
근데 기업협업에서 poetry를 익히고 난 지금 다시 보니까 npm은 노드 패키지 매니저이고 npm install을 하게되면 해당 프로젝트 내에서만 사용할수 있게 관리 되는거고 poetry install과 똑같이 작동하는거라는게 보인다.
처음 poetry 사용할때 이게 뭔가 싶었는데 그때 안배웠으면 지금 이게 뭔가 했겠지?
역시 기회가 될때 새로운걸 많이 시도해보는게 좋은것같다~
'TIL' 카테고리의 다른 글
node.js | express로 서버 만들기 - 회원가입 엔드포인트 만들기(DB x) (0) | 2022.09.26 |
---|---|
node.js | express 없이/express로 서버 만들기 (1) | 2022.09.26 |
LeetCode | 001. Two Sum (1) | 2022.09.23 |
220714 | Westagram 마무리, 파이썬 함수 key, 리스트[ : ] (0) | 2022.07.15 |
220713 | westagram 로그인 & 회원가입 실습 (0) | 2022.07.13 |