티스토리 뷰

Backend에서 : front 서버 DB 연결해보기!

프런트 : axios를 통해서 서버에 요청할 수 있다.

백엔드 : express 모듈 서버에서 요청을 처리하는 웹서버를 만들기 위해 (http 모듈 대신에 간편하게 만든 모듈)

 

1. 폴더 경로에 모듈 설치 (쿠키 파서 익스프레스 세션 닷엔브)

npm i cookie-parser express-session dotenv

*npm은 nodejs설치 시 같이 깔린다.

https://nodejs.org/en/download/

 

Download | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

1. > app.js

라우터 연결

미들웨어 사용

모듈 불러오기

post / get

//app.js
const express = require('express')
//익스프레스는 http를 내장하고있어 서버연결이가능하다.
const path = require('path')
//패스 모듈을 가져와서 다른 파일 불러올수있다.
const morgan = require('morgan')
//미들웨어 편리하게 짜는 패키지
const bodyParser = require('body-parser') //req.body 함수 쓰기위해, post raw json {"name":"sm"}->이거 콘솔에 보여줌
const cookieParser = require('cookie-parser')
const session = require('express-session')//세션관리 미들웨어 : 로그인 : 사용자를 위한 데이터 임시 저장. req.session 객체안에 유지됨.
const dotenv = require('dotenv')
const { user } = require('pg/lib/defaults')

// const {sequelize} = require('./models')
// const { runInNewContext } = require('vm')

dotenv.config()
const indexRouter  =require('./routes')
const userRouter  =require('./routes/users')
const app = express()
app.set('port',process.env.PORT || 3000)
//app변수에 익스프레스 할당 : 서버역할을한다.
//ser 포트 설정('키', 값)

app.use(morgan('dev')) // (로그 나오게하는!!)모건 미들웨어 사용 dev -> GET / 200 7.303 ms - 12: [http매서드][주소][상태코드][응답속도]-[응답바이트]
app.use('/',express.static(path.join(__dirname,'public')))//static 미들웨어 (express안에서 꺼내씀)(요청경로,스태틱(실제경로,퍼블릭)) 경로 파일 퍼블릭으로 해 놓으면 폴더에 접근가능하다.
app.use(express.json()) // 데이터 처리 : 제이슨을 받기위한. 고정적으로 쓴다, res.body
app.use(express.urlencoded({extended:false})) //제이슨 처리  고정적으로 쓴다.쿼리스트링을 사용하여 해석한다. res.body에 저장
app.use(cookieParser(process.env.COOKIE_SECRET))//프론트 -> 서버 요청보낼때 이름 비번 암호화해서 요청보낸걸 가로채서 해석해서 쿠키로 저장 
app.use(session ({
  resave: false,
  saveUninitialized:false,
  secret: process.env.COOKIE_SECRET,
  cookie: {
    httpOnly:true,
    secure:false,
  },
  name: 'session-cookie'
}))
app.use('/',indexRouter)//라우터 연결
app.use('/users',userRouter)
app.use((req,res,nect) =>{
  res.status(404).send('낫파운드에러')
})

//패키지를 연결해줘야한다. app.use 사용 

  app.use((req,res,next)=>{
    console.log('모든요청에 다 실행됩니다')
    next()
  })
    


app.listen(app.get('port'),()=>{
  console.log(app.get('port'),'번 포트에서 대기중');




})

'Web > Backend_node.js기초' 카테고리의 다른 글

Express : 라우터 관리  (0) 2022.02.07
Node.js_Express 모듈 / 미들웨어  (0) 2022.02.04
Node.js_ htt 모듈  (0) 2022.02.04
Node.js _ 노드 내장 객체 / 노드 내장 모듈  (0) 2022.02.04
Node.js_시작 .  (0) 2022.02.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함