티스토리 뷰
<<패키지 매니저>>
기능을 하나하나 다 만들려면 오래 걸리기 때문에 만들어놓은 것 → 모듈
재사용 : 다른 사람이 올려놓은 모듈을 사용할 수 있다.
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
링크
TAG
- Express
- node.js
- Python
- AI
- RNN
- Java
- docker
- MQTT
- colab
- VR
- Arduino
- opencv
- three.js
- 라즈베리파이
- emotive eeg
- 유니티
- oculuspro
- motor controll
- 유니티플러그인
- 후디니
- JacobianMatrices
- DeepLeaning
- houdini
- ardity
- CNC
- Unity
- unity 360
- StableDiffusion
- TouchDesigner
- sequelize
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함