작성
·
1.1K
1
'그랩마켓서버구축하기' 강의에서 localhost:8080에 접속 후 /products로 진입하면 처음에는 렌더링 되지만 이후 터미널에서 events.js:292
throw er; // Unhandled 'error' event
^
Error [ERR_STREAM_WRITE_AFTER_END]: write after end
at writeAfterEnd (_http_outgoing.js:668:15)
at ServerResponse.end (_http_outgoing.js:788:7)
at Server.<anonymous> (C:\Users\JAEHA\Desktop\grab-market-server\index.js:24:7)
at Server.emit (events.js:315:20)
at parserOnIncoming (_http_server.js:874:12)
at HTTPParser.parserOnHeadersComplete (_http_common.js:126:17)
Emitted 'error' event on ServerResponse instance at:
at writeAfterEndNT (_http_outgoing.js:727:7)
at processTicksAndRejections (internal/process/task_queues.js:81:21) {
code: 'ERR_STREAM_WRITE_AFTER_END'
}
이런 에러가 뜨면서 서버가 다운됩니다. 구글링해서 해봤는데도 효과가 없습니다.. vscode도 종료했다 켰어요!
답변 6
4
3
var http = require("http");
var hostname = "127.0.0.1";
var port = 8080;
const server = http.createServer(function (req, res) {
const path = req.url;
const method = req.method;
if (path === "/products") {
if (method === "GET") {
res.writeHead(200, { "Content-Type": "application/json" });
const products = JSON.stringify([
{
name: "농구공",
price: 5000,
},
]);
res.end(products);
} else if (method === "POST") {
res.end("생성되었습니다!");
}
}else{
res.end("Good Bye");
}
});
server.listen(port, hostname);
console.log("grab market server on!");
위와 같이 코드 변경해보시겠어요?
바꾼 부분은 else를 추가했습니다.
if(path == '/products'){
...
} else{
res.end("Good Bye");
}
1
0
0
var http = require("http");
var hostname = "127.0.0.1";
var port = 8080;
const server = http.createServer(function (req, res) {
const path = req.url;
const method = req.method;
if (path === "/products") {
if (method === "GET") {
res.writeHead(200, { "Content-Type": "application/json" });
const products = JSON.stringify([
{
name: "농구공",
price: 5000,
},
]);
res.end(products);
} else if (method === "POST") {
res.end("생성되었습니다!");
}
}
res.end("Good Bye");
});
server.listen(port, hostname);
console.log("grab market server on!");
0