express
라이브러리를 설치해서 서버를 만들어보았다.
npm init -y
를 통해서 package.json을 만들어주고,
npm install express
를 통해서 express 라이브러리를 설치했다.
server.js
파일을 하나 만들고,
const express = require('express');
const app = express();
const PORT = 8080;
app.use(express.static(__dirname + '/public'));
app.listen(PORT, () => {
console.log(`http://localhost:${PORT} 에서 서버 실행중`);
});
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
app.get('/news', (req, res) => {
res.send('뉴스 페이지다');
});
app.get('/shop', (req, res) => {
res.send('쇼핑페이지입니다.');
});
app.get('/about', (req, res) => {
res.sendFile(__dirname + '/about.html');
});
이렇게 예제를 작성해보았다.
package.json에 "type": "module"을 추가하면 import
를 사용할 수 있지만,
문자가 아니라 파일을 내보낼 때에 코드가 지저분해지는 것 같아서 추가하지 않았다.
아무튼 express를 가져와서 express()를 가져온 다음, 포트를 설정해주고 실행을 하면 서버가 열리고,
경로별로 유저가 접근하면 데이터를 전달하는 형태로 단순하게 동작하는 것 같다.
get
은 해당 경로에 접근했을 때, 콜백함수를 실행하는 구조였는데,
콜백함수는 매개변수로 req(요청)
과 res(응답)
을 가지고 있었고,
테스트는 해보지 않았지만, req를 이용해서 조건식을 만들면, 요청에 따라 다른 동작을 만들 수 있을 것 같았다.
내 테스트 코드에서는 res를 통해서 send
와 sendFile
메소드를 호출해서 문자나 파일을 전송했다.
파일을 전송할 때에는 __dirname
키워드를 이용해서 보냈다. __dirname
은 프로젝트의 루트 경로를 뜻한다고 한다.
css파일이나, js파일을 넘겨줄 때에는 use
메소드를 이용해서 폴더를 하나 등록해줘야한다고 한다.link
태그를 통해 html 파일에 css파일을 등록할 때에는 server.js 파일에 등록한 최상위 폴더 명을 제거하고 href에 넣어줘야한다고 한다.
'Node.js' 카테고리의 다른 글
nodejs express CRUD 만들기 2(READ) (0) | 2024.08.06 |
---|---|
nodejs express CRUD 만들기 1(CREATE) (0) | 2024.08.06 |
express로 만든 서버에 mongoDB연동 + 데이터 화면에 출력 하기 (0) | 2024.08.02 |
NPM (0) | 2024.01.14 |
node.js - npm 프로젝트 시작하기 (1) | 2024.01.14 |