728x90
반응형
SMALL
1. http 라이브러리
- 웹사이트 동작 서비스를 해줄 수 있는 라이브러리
- HTTP 요청을 받고 응답할 수 있음
1-1. 라이브러리 불러오기
const http = require('http')
2. createServer()
- 콜백함수임
- 리턴객체 순서(requests(HTTP 요청과 관련된 정보), response(HTTP 응답을 만들기 위한 메서드와 속성을 제공))
const server = http.createServer((req, res) =>{
console.log('서버가 동작중입니다!')
console.log(req.headers)
console.log(req.method) // GET
console.log(req.url) // '/': root정보, localhost:8080 이라고 쳤을 때
server.listen(9090);
3. req.url
- Node.js에서 HTTP 요청 객체(request 객체)의 속성 중 하나로, 클라이언트가 요청한 URL 경로
- 예를 들어, http://example.com/about URL에 대한 요청이 있을 때, req.url은 /about 문자열을 반환
- req.url 값을 기반으로 서버에서 다른 페이지를 렌더링하거나, 요청된 파일의 경로를 확인할 수 있음
4. res.setHeader(key, value)
- HTTP 응답 객체(response 객체)의 메서드 중 하나로, 응답 헤더를 설정하는 데 사용
- 응답 헤더는 클라이언트와 서버 간에 교환되는 메타데이터로, 클라이언트가 응답을 처리하는 방법을 결정
- res.setHeader('Content-Type', 'text/html') 코드를 사용하여 Content-Type 헤더를 설정하고, 서버에서 반환하는 내용은 HTML 형식의 텍스트임
📄 1) "/"로 접근했을 때 나올 index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>welcome!</title>
</head>
<body>
<h2>nodejs로 만든 첫번째 웹 사이트!😝</h2>
</body>
</html>
📄 2) "/mypage"로 접근했을 때 나올 mypage.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>마이페이지</title>
</head>
<body>
<h2>마이페이지</h2>
<p>저는 ....</p>
</body>
</html>
📄 3) 그 외 다른 문자열의 url 접근했을 때 나올 not-found.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Not Found</title>
</head>
<body>
<h2>😥Not Found</h2>
</body>
</html>
✅ url로 접근하여 확인해보기!
const http = require('http')
const fs = require('fs')
// 서버생성
const server = http.createServer((req, res) =>{
console.log('서버가 동작중입니다!')
console.log(req.headers)
console.log(req.method) // GET
console.log(req.url) // '/': root정보, localhost:8080 이라고 쳤을 때
// url : /mypage 등의 문자열
const url = req.url
//헤더 설정
res.setHeader('Content-Type', 'text/html')
if(url === '/'){
fs.createReadStream('./html/index.html').pipe(res) // 서버로 해당 html을 읽어오고 res객체를 사용자쪽으로 출력해
}else if(url === '/mypage'){
fs.createReadStream('./html/mypage.html').pipe(res)
}else{
fs.createReadStream('./html/not-found.html').pipe(res)
}
})
server.listen(9090);
728x90
반응형
LIST
'Web > Nodejs' 카테고리의 다른 글
[Node.js] Postman 다운로드 하기! (0) | 2023.04.30 |
---|---|
[Node.js] EJS(Embedded JavaScript Templating) - 템플릿 엔진이란? & 동적 웹페이지 구성 (0) | 2023.04.30 |
[Node.js] npm(Node Package Manager) - 라이브러리 설치, nodemon 설치하기! (0) | 2023.04.30 |
[Node.js] 버퍼(Buffer) (0) | 2023.04.26 |
[Node.js] 모듈 - 4️⃣ fs (0) | 2023.04.26 |