[Node.js 찍먹하기] Chapter 01 : 서버 띄우기

express로 서버 띄우기

일단 폴더구조를 알기전에

app.js를 만들어 서버 코드를 생성자하

const express = require("express");
const app = express();

app.listen(3000, function () {
    console.log("서버 가동");
});

하지만, 에러가 난다 ⇒express를 찾을수 없기 때문

⇒ express는 Node.js의 각종라이브러리와 프레임워크가 들어있기때문에 npm으로 다운받아줘야함

npm install express --svae
// 서버구동
node app.js

그럼 epxress를 불러와서 express가 로컬 PORT 3000번으로 서버를 구동시켜준다


get으로 요청 받은 url에 따른 responds보내기

// express가 서버에서 get요청으로 /(루트)를 보내면, res=반응 을 한다
app.get("/", (req, res) => {
    //기능
    res.send("여기는 루트입니다.");
});
// express가 서버에서 get요청으로 /login(루트)를 보내면, res=반응 을 한다
app.get("/login", (req, res) => {
    res.send("여기는 로그인 입니다.")

코드안에 해당 url를 요청 받고, 화살표 함수로 이에 따른 기능을 추가해주면 된다


왜 express를 써야 할까? http로도 가능하잖아?

const http = require("http"); // 내장 모듈이라 다운 없이 가능
const app = http.createServer((req, res) => {
        res.end("여기는 루트입니다");
    } else if (req.url === "/login") {
        res.end("여기는 로그인 화면입니다.")
    }
});

app.listen(3001, () => { // 3000은 있으니 다른걸로 하자
    console.log("http로 가동한 서버입니다")
});

하지만 코드만 봐도 알듯이 깔끔하지 못하다

요청 받은 url이 어떤 루트인지 알아야 하기 때문에 조건문이 들어가기때문이다

그리고 서버가 해당 url를 잘 반환해줬다해도

이러한 한글깨짐이 있다

루트처리도 귀찮은데..

한글 처리까지 해줘야한다

res.writeHead(200, { 'Content-Type': "text/html; charset=utf-8" }); //정상출력이고(200), 보내는 방법은 html이고, char셋은 utf-8로 해석해달라

이제 정상 출력이 된다.

좋은 웹페이지 즐겨찾기