일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- node.js
- Eclipse
- 프롬포트 수정
- 웹페이지
- 노드
- 이클립스
- git
- 문자열 자르기
- java
- 개발자
- 코딩
- Python
- 웹페이지 만들기
- jsp
- 백앤드
- 백엔드
- 웹개발
- 파이썬
- 스프링부트
- 문자열
- 프론트엔드
- 홈페이지 만들기
- HTML
- QR코드
- Spring Boot
- 웹개발자
- zxing
- Javascript
- sts4
- spring
- Today
- Total
웹개발왕
[Node.js] 백엔드에서 response 여러번 보내는 방법 본문

안녕하세요.
오늘은 Node.js를 사용할때 response를 여러번 보내는 방법을 알아보겠습니다.
왜 response를 여러번 보내야돼? 라고 궁금하실수 있을텐데요.
제가 개발하려는 기능을 간단히 설명 드리겠습니다.

제가 개발하려는 기능은 작업이 끝날때마다 response를 보내서 화면에 로그를 출력하고 싶었는데요.
node.js에서 많이 사용하는 response.status(200).json({}); 을 사용하면 한 번의 response만 보낼 수 있더라구요.
그래서 제가 사용한 방법은 response.write(); 입니다.
백엔드에서 response 여러번 보내기
res.write(
JSON.stringify({
status: "loading",
message: "response 받기 시작",
}) + "\n"
);
setTimeout(() => {
res.write(
JSON.stringify({
status: "lodding",
message: "response 받기",
}) + "\n"
);
}, 1000);
setTimeout(() => {
res.write(
JSON.stringify({
status: "success",
message: "response 받기 완료",
}) + "\n"
);
res.end();
}, 2000);
위 소스처럼 response.write()에 응답 json을 보내면 여러번 보낼수 있는데요.
다 보내고나면 꼭 response.end()를 해야합니다.
이 response를 받는 프론트엔드에서도 받는 방법이 달라지는데요.
프론트엔드에서 response 여러번 받는 방법
async function getResponse() {
try {
// 백엔드에서 response 받기
const response = await fetch("http://localhost:5000/response");
const reader = response.body.getReader();
// 반복문으로 받은 데이터를 처리
while (true) {
const { done, value } = await reader.read();
if (done) break;
// 받은 데이터를 문자열로 변환
const text = new TextDecoder().decode(value);
const lines = text.split("\n");
// 문자열을 줄바꿈 기준으로 분리
for (const line of lines) {
if (line.trim() === "") continue;
try {
const data = JSON.parse(line);
// 받은 데이터를 화면에 출력
const statusDiv = document.getElementById("response");
statusDiv.innerHTML += `<div>${data.message}</div>`;
} catch (e) {
console.error("JSON 파싱 에러:", e);
}
}
}
} catch (error) {
console.error("Error:", error);
}
}
위 소스처럼 반복문으로 받은 데이터를 처리를 하면 됩니다.
response를 받을때 response.body.getReader()로 받고 TextDecoder()를 사용해 문자열로 변환하는데요.
보편적으로 사용하는 response.text()나 response.json()은 모든 데이터를 수신한 후에 처리하기 때문에 TextDecoder()를 사용했습니다.
이렇게 개발하면 어떻게 출력되는지 동영상으로 보여드리겠습다!

이렇게 response를 여러번 보내는 방법을 알아보았습니다.
일어주셔서 감사합니다!
참고하면 도움되는 포스팅 ▼
[Node.js] 윈도우에서 Node.js 설치하기
안녕하세요. 오늘은 윈도우에서 Node.js 설치하는 방법을 알아보겠습니다.우선 Node.js가 무엇인지 알아볼까요? Node.js Node.js는 javascript 언어를 브라우저 밖에서 사용 할 수 있는 런타임 환경인
web-developer1.tistory.com
[Spring Boot] JAVA로 만든 Controller로 JSP 호출하기
안녕하세요. 오늘은 JAVA를 이용해 JSP를 호출할 수 있는 Controller 만드는 방법을 알아보겠습니다. 전에 포스팅한 JSP 파일 생성 & JSP 기본 경로 지정하기와 이어지는 내용이니 안 읽으신분은 꼭 읽
web-developer1.tistory.com
[GIT] GIT Download 윈도우에서 GIT 설치하기
안녕하세요. 오늘은 윈도우에서 git 설치하는 방법을 알아보겠습니다. GIT 다운로드 우선 GIT 공식 홈페이지에서 윈도우 버전을 다운로드 받습니다. Git - DownloadsDownloads macOS Windows Linux/Unix Older
web-developer1.tistory.com
'Javascript > Node.js' 카테고리의 다른 글
[Node.js] express 프레임워크를 이용해 웹 서버 만들기 (2) | 2024.10.12 |
---|---|
[Node.js] 윈도우에서 Node.js 설치하기 (5) | 2024.10.10 |