소개
이 프로젝트에서는 Node.js 를 사용하여 간단한 뉴스 API 를 만드는 방법을 배웁니다. 서버를 생성하고, 다양한 라우트를 처리하며, 특정 형식으로 뉴스 데이터를 반환하는 방법을 배우게 됩니다.
👀 미리보기
curl http://localhost:8080/news
## Output:
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"National Focus"},{"channelId":"5572a108b3cdc86cf39001ce","name":"International Focus"}]
curl http://localhost:8080
## Output:
## 404
🎯 과제
이 프로젝트에서 다음을 배우게 됩니다:
- Node.js 를 사용하여 서버를 생성하는 방법
/news라우트를 처리하고 뉴스 데이터를 반환하는 방법- 다른 라우트를 처리하고 404 응답을 반환하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다:
- Node.js 를 사용하여 서버를 생성하는 기본 사항 이해
- 뉴스 데이터를 반환하는 간단한 API 구현
- 다양한 라우트를 처리하고 적절한 응답 제공
서버 생성
시작하려면 편집기를 엽니다. 편집기에서 "app.js" 파일을 볼 수 있습니다.
이 단계에서는 Node.js 를 사용하여 서버를 생성하는 방법을 배웁니다. 이 단계를 완료하려면 아래 단계를 따르세요:
코딩 환경에서
app.js파일을 엽니다.서버를 생성하는 기능을 제공하는
http모듈을 가져옵니다:const http = require("http");createServer()메서드를 사용하여 새 서버를 생성합니다:const serve = http.createServer();들어오는 요청을 처리하기 위해 서버에 이벤트 리스너를 추가합니다:
serve.on("request", (req, res) => { // TODO: Add code to handle the request });서버를 시작하고 포트 8080 에서 수신 대기합니다:
serve.listen(8080, () => { console.log("The service has been started!"); });
/news 라우트 처리
이 단계에서는 /news 라우트를 처리하고 뉴스 데이터를 반환하는 방법을 배웁니다. 이 단계를 완료하려면 아래 단계를 따르세요:
요청 이벤트 리스너 내에서 응답 헤더를
utf8형식을 사용하도록 설정합니다:res.setHeader("Content-type", "text/html;charset=utf8");요청된 URL 을 확인합니다:
if (req.url == "/news") { // Handle the /news route } else { // Handle other routes }필요한 형식으로 뉴스 데이터를 준비합니다:
const data = [ { channelId: "5572a108b3cdc86cf39001cd", name: "National Focus" }, { channelId: "5572a108b3cdc86cf39001ce", name: "International Focus" } ];뉴스 데이터를 응답으로 보냅니다:
res.end(JSON.stringify(data));
다른 라우트 처리
이 단계에서는 /news가 아닌 다른 라우트를 처리하는 방법을 배웁니다.
요청 이벤트 리스너 내에서 다른 라우트를 처리하기 위해
else블록을 추가합니다:if (req.url == "/news") { // Handle the /news route // ... } else { // Handle other routes res.end("404"); }else블록에서 요청된 라우트를 찾을 수 없음을 나타내기 위해404응답을 보냅니다.
이제 app.js 파일은 다음과 같아야 합니다:
const http = require("http");
const serve = http.createServer();
serve.on("request", (req, res) => {
// TODO: Add code to handle the request
res.setHeader("Content-type", "text/html;charset=utf8");
console.log(req.url);
if (req.url == "/news") {
const data = [
{
channelId: "5572a108b3cdc86cf39001cd",
name: "National Focus"
},
{
channelId: "5572a108b3cdc86cf39001ce",
name: "International Focus"
}
];
res.end(JSON.stringify(data));
} else {
res.end("404");
}
});
serve.listen(8080, () => {
console.log("The service has been started!");
});
서버 테스트
터미널에서 다음 명령을 사용하여 서버를 실행합니다:
node app.js다시 새 터미널을 열고 다음 명령으로 터미널이 올바른지 확인합니다:
curl http://localhost:8080/news
## Output:
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"National Focus"},{"channelId":"5572a108b3cdc86cf39001ce","name":"International Focus"}]
curl http://localhost:8080
## Output:
## 404
축하합니다! Node.js 를 사용하여 뉴스 API 를 성공적으로 만들었습니다.
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



