초기세팅

이동호·2023년 1월 10일

npm init -y
npm i express dotenv
npm i -g nodemon // script에 "start": "nodemon app.js"를 넣어주고 npm start하면 서버 자동실행이 된다.

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

app.use(express.json()); // post, put에서 전달된 body 데이터를 req.body로 사용할수 있도록 만든 bodyparser
app.use(express.urlencoded({ extended: false }));
require("dotenv").config(); // .env파일을 만들어 보안을 할수있게 하는 기능
const env = process.env;
app.get("/", (req, res) => {
  res.send("hellow");
});

/** 
	app.use(express.static('static'));
    app.get('/login/owner', (req, res) => {
        res.sendFile(__dirname + "/assets/owner_login.html");
    });
 */

app.listen(env.PORT, () => {
  console.log(env.PORT, "번 포트가 실행되었습니다.");
});

.env

PORT=port
MYSQL_USERNAME= "username"
MYSQL_PASSWORD= "password"
MYSQL_DATABASE= "database"
MYSQL_HOST= "host"

urlencoded({ extended: false }

application/x-www-form-urlencoded 방식이면 -> false

application/x-www-form-urlencoded 방식이 아닌 다른 인코딩 방식이라면 -> true 를 넣어주면 됩니다.

옵션이 false면 노드의 querystring 모듈을 사용하여 쿼리스트링을 해석하고, true면 qs 모듈을 사용하여 쿼리스트링을 해석합니다. qs 모듈은 내장 모듈이 아니라 npm 패키지 이며, querystring 모듈의 기능을 좀 더 확장한 모듈입니다.

예를 들어, JSON 형식으로 { name: 'kchmin', book: 'nodejs' } 를 본문으로 보낸다면 req.body에 그대로 들어가게 됩니다. URL-encoded 형식으로 name = kchmin&book=nodejs를 본문으로 보낸다면

req.body에 { name: 'kchmin', book: 'nodejs' } 가 들어갑니다.

app.get render or sendfile

sendfile은 정적인 웹페이지를 만들때 사용하며 대표적으로 html파일이 있고
render는 동적인 웹페이지를 만들때 사용하며 대표적으로 ejs(javascript기반의 템플릿 엔진) 이 있다.
정리하면 html 쓰려면 sendfile을 써야하고 ejs를 쓰려면 render를 써야한다.

profile
내일배움캠프4기

0개의 댓글