티스토리 뷰

<<패키지 매니저>>

기능을 하나하나 다 만들려면 오래 걸리기 때문에 만들어놓은 것 → 모듈

재사용 : 다른 사람이 올려놓은 모듈을 사용할 수 있다.

npm

→ 노드를 깔면 npm 깔려있다.

package.json

을 사용하여 패키지를 관리한다.

EXPRESS?

http 모듈로 웹서버 만드는 게 불편해서 나온 프레임 워크

더 이상 REST api 메서드를 if로 구현하지 않아도 된다.

 

미들웨어?

구조 내에서 중간 처리를 위한 함수


 

<express 설치>

1. npm 인잇 : 초기화 

빈폴더 만들어서 cd 빈폴더

npm init

 

pacjage.json 파일이 생긴다.

 

2. express 패키지를 깔아보자

npm install express

npm > node modules에 깔린 모듈들이 들어간다

3. 실행시키기

npx nodemon index

html 파일 읽어올 때 res.sendFile

 

[미들웨어]

> app.use

const path = require('path')
const express = require('express')
const app = express() //익스프레스 호출

//앱가지고 set 매소드 실행
app.set('port', 3000)

app.use((req,res,next)=>{ //미들웨어
  console.log('모든요청에서다시행됨');
  next()
})

//get
app.get('/',(req,res)=>{ //주소 
  //res.send('Hello, Express')//res.end()와 같다. 보낸다.
  res.sendFile(path.join(__dirname,'/index.html'))// =data = fs.readFile(경로)
})//get주소로 요청을 처리하겠따
const port = app.get('port')//포트를 불러온다.
app.listen(port,()=>{
console.log('번 포트에서 서버 실행중 !');
})

이렇게 써도 됨

...

app.get('/',(req,res,next)=>{ //주소 
  console.log('get/ 요청에서 실행됩니다');
  next() // 미들웨어 next !!!!통과시킨다.
},(req,res)=>{
  //res.send('Hello, express')
  throw new Error('error')
  res.sendFile(path.join(__dirname,'/index.html'))
})//get주소로 요청을 처리하겠따
app.use((err,req,res,next)=>{
  console.error(err);
  res.statu(500).send(err.message)
})

...

 

[미들웨어 : 모건 쿠기 파서 세션]

-설치

npm i morgan

-모건: 로그를 남기는 용도

-쿠키 파서 세션 : 쿠키 관련 :: 세션은 개인정보 쿠키에 노출 안되게

const path = require('path')
const express = require('express')
const morgan = require('morgan')
const cookieParser = require('cookie-parser')
const session = require('cookie-parser')

const app = express()//익스프레스 호출

app.use(morgan('dev'))//로그정보 보여주는애 dev 써준다.combined 쓰면 더 자세히나옴
app.use('/',express.static(path.join(__dirname,'public')))
//(요청경로,실제경로)
//퍼블릭폴더에있는 모든 파일 접근가능.
//인터넷 주소에서 /뒤에 원하는 파일 이름 확장자까지 써주면 접근가능
//정적파일 이름 확장자까지 접근가능
app.use(express.json()) //들어온 데이터 처림 json요청 들어오면 ->json으로 그대로 담아줌 (자동으로 제이슨파싱)
app.use(express.urlencoded({extended : false}))
//app.use(cookieParser()): 쿠기 설정하는 옵션
app.use(session({
  resave : false,
  saveUninitialized : false,
  secret : process.env.COOKIE_SECRET,
  cookie:{
    httOnly:true,
    secure:false,
  },
  name : 'session-cookie'
}))

//앱가지고 set 매소드 실행
app.set('port', 3000)

app.get('/',(req,res)=>{
  res.send('Hello, express')
  //throw new Error('error')
  res.sendFile(path.join(__dirname,'/index.html'))
})//get주소로 요청을 처리하겠따
app.use((err,req,res,next)=>{
  console.error(err);
  res.statu(500).send(err.message)
})

const port = app.get('port')//포트를 불러온다.
app.listen(port,()=>{
console.log(port,'번 포트에서 서버 실행중 !');
})

[뮬터]

뮬터 미들웨어 설치(미들웨어는 설치해야 사용 가능하다.)

npm i multer

뮬터를 활용한 post

: Multer는 주로 파일 업로드에 사용되는 처리를 위한 node.js 미들웨어.

const express = require('express')
const app = express()
const multer = require('multer')
const path = require('path')

const upload = multer({
  storage: multer.diskStorage({
    destination(req, file, done) {
      done(null, 'uploads/')
    },
    filename(req, file, done) {
      const ext = path.extname(file.originalname)
      done(null, path.basename(file.originalname, ext) + Date.now() + ext)
    },
    limits: {fileSize: 5 * 1024 * 1024}
  })
})

app.get('/', (req, res) => {
  res.sendFile(path.join(__dirname, 'multi.html'))
})

app.post('/upload', upload.single('image'), (req, res) => {
  console.log(req.file, req.body)
  res.redirect('/')
})

app.listen(3000, ()=> {
  console.log('3000포트에서 실행중, multer 파일 서버')
})

 

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

sequlize - express : DB와 서버 연결  (0) 2022.02.07
Express : 라우터 관리  (0) 2022.02.07
Node.js_ htt 모듈  (0) 2022.02.04
Node.js _ 노드 내장 객체 / 노드 내장 모듈  (0) 2022.02.04
Node.js_시작 .  (0) 2022.02.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함