///
Search
💍

07.Express 모듈로 서버 구축하기(HTML,CSS,미들웨어,Nodemon까지)

이전 자료

출처

npm init 명령을 이용하여 애플리케이션에 대한 package.json 파일을 작성하십시오. package.json의 작동 원리에 대한 자세한 정보는 Specifics of npm’s package.json handling을 참조하십시오.
npm init
JavaScript
복사
cmd 창에 아래의 명령어를 입력한다. (express 설치)
npm i express
JavaScript
복사
실행화면
그리고 폴더 보면 새로운 것이 생긴것을 확인할 수 있다.
소스코드는 아래 것으로 새로 바꾼다.

/app.js

const express = require("express"); const server = express(); server.get("/", (req, res) => { res.send("<h1>Hello from Nodejs Express</h1>"); }); server.listen(3000, (err) => { if (err) return console.log(err); console.log("The server is listening on port 3000"); });
JavaScript
복사
실행 방법은 아래의 명령어를 입력한다.
node app.js
JavaScript
복사
실행화면
PS C:\Users\glory\Desktop\nodejsproject> node app.js The server is listening on port 3000
JavaScript
복사
localhost:3000 을 주소창에 검색하면 아래와 같은 화면이 나온다.

HTML 연동 및 CSS 연동 및 미들웨어 사용

같은 폴더내에 아래와 같은 파일을 3개를 만든다.

/about.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>About</title><!--제목이 About이다.--> </head> <body> <h1>About</h1><!--웹페이지 안에 About을 작성한다.--> </body> </html>
HTML
복사

/index.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" href="/index.css" /><!--index.css 내용을 가져와서 내용을 꾸며준다.--> <title>Home</title><!--제목이 Home이다.--> </head> <body> <h1 class="red">This is Home</h1><!--웹페이지 안에 This is Home을 작성한다. 그리고 css 파일에 red함수를 가져와서 쓴다.--> </body> </html>
HTML
복사

/404.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title><!--제목으로 Document라고 쓴다.--> </head> <body> <h1>Page Not Found 404</h1><!--웹페이지 안에 Page Not Found 404t을 작성한다.--> </body> </html>
HTML
복사
그리고 app.js 파일을 아래의 코드로 바꾼다.

/app.js

const express = require("express"); const server = express(); server.use(express.static(__dirname + "/public")); server.get("/", (req, res) => { res.sendFile(__dirname + "/index.html"); }); server.get("/about", (req, res) => { res.sendFile(__dirname + "/about.html"); }); server.use((req, res) => { res.sendFile(__dirname + "/404.html"); }); server.listen(3000, (err) => { if (err) return console.log(err); console.log("The server is listening on port 3000"); });
JavaScript
복사
마지막으로 public이라는 폴더를 만들고, index.css를 만든다.

/public/index.css

.red { color: red; /*글씨를 빨간색으로!*/ }
CSS
복사
위의 프로그램이 돌아가는 순서는 다음과 같다.
1.
서버 실행
2.
미들웨어 거치고
3.
주소창 끝에 / 이 와서 get 하면 index.html을 쏴주고 거기에 index.css가 꾸며준다.
4.
주소창 끝에 /about 이 와서 get 하면 about.html을 쏴주고
5.
주소창 끝에 그 외것들이 오면 404 출력을 해준다.

실행화면

번외

404 출력을 하는 다른 웹사이트 서버 예시

구글

애플

소스가 변경될 때 마다 새로운 코드가 나오도록 Nodemon, package.json 파일 제작하기

아래의 명령어를 입력한다.
명령어
npm init --y
JavaScript
복사
실행화면
PS C:\Users\glory\Desktop\nodejsproject> npm init --y Wrote to C:\Users\glory\Desktop\nodejsproject\package.json: { "name": "nodejsproject", "version": "1.0.0", "description": "", "main": "app.js", "dependencies": { "express": "^4.17.1" }, "devDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" } PS C:\Users\glory\Desktop\nodejsproject>
JavaScript
복사
그러면 package.json 파일이 나오는 것을 확인할 수 있다.
참고화면
nodemon 설치
파일이 수정 될 때 마다 서버를 재 시작하는 불편함을 없애기 위해서 nodemon을 사용해보자
명령어
npm install nodemon --save-dev
JavaScript
복사
실행화면
PS C:\Users\glory\Desktop\nodejsproject> npm install nodemon --save-dev > nodemon@2.0.7 postinstall C:\Users\glory\Desktop\nodejsproject\node_modules\nodemon > node bin/postinstall || exit 0 Love nodemon? You can now support the project via the open collective: > https://opencollective.com/nodemon/donate npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.1 (node_modules\chokidar\node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) npm WARN nodejsproject@1.0.0 No description npm WARN nodejsproject@1.0.0 No repository field. + nodemon@2.0.7 added 117 packages from 53 contributors and audited 168 packages in 7.447s 11 packages are looking for funding run `npm fund` for details found 0 vulnerabilities PS C:\Users\glory\Desktop\nodejsproject>
JavaScript
복사
설치 중 화면
package.json 파일에 nodemon 이 추가되어있는 것을 볼 수 있다.
scripts 부분에 "dev": "nodemon app.js" 명령문을 입력한다.
소스코드

/package.json

{ "name": "nodejsproject", "version": "1.0.0", "description": "", "main": "app.js", "dependencies": { "express": "^4.17.1" }, "devDependencies": { "nodemon": "^2.0.7" }, "scripts": { "dev": "nodemon app.js" }, "keywords": [], "author": "", "license": "ISC" }
JSON
복사
여기까지 되었다면 앞으로 실행할 때 npm run dev 를 써서 실행한다.
명령어
npm run dev
JSON
복사
실행화면
파일을 새로 작성하고 저장 할 때 마다 아래처럼 초기화 된 것이 보인다.
실행화면