내 http 서버를 실행하는 코드이므로 GET 요청의 키를 JSON 파일의 "users"키와 비교합니다 (아래쪽으로 조금 더 보여줍니다). 이 파일에 나열된 처음 두 사용자 중 하나의 키를 사용하면 제대로 작동하고 원하는대로 응답합니다. 나는 그러나 세 번째 사용자의 키를 사용하는 경우, 그것은 403 오류로 응답 (그것은 the response.writeHead(403);
라인을 실행 (이 원인이 오류에 대해이 iamges을 볼 수 있었다 무엇 :.? https://imgur.com/a/jC7zn)NodeJS/javascript에서 "Error : end after write"가 표시되는데 어떻게 될까요?
var httpserver = http.createServer(function(request, response) {
try {
var key = '';
if (request.url.indexOf('k=') != -1) {
key = request.url.substring(request.url.indexOf('k=') + 2);
}
for (i = 0; i < Object.keys(users).length; i++) {
if (users[Object.keys(users)[i]].apikey == key) {
response.writeHead(200, {
'Content-Type': 'application/json'
});
response.write(JSON.stringify(users, null, '\t'));
response.end();
} else {
response.writeHead(403);
response.end();
}
}
} catch (err) {
console.log(err);
}
});
은 "사용자"JSON 파일 (obious 이유로 난독 아이디의, 이름과 APIkeys) :이 오류입니다
{ "user1": {
"auth": "3",
"name": "Name1",
"apikey": "key1" },
"user2": {
"auth": "3",
"name": "Name2",
"apikey": "key2" },
"user3": {
"auth": "3",
"name": "Name3",
"apikey": "key3" }
}
내가 얻을 :
Error: write after end
at write_ (_http_outgoing.js:625:15)
at ServerResponse.write (_http_outgoing.js:620:10)
at Server.<anonymous> (pathtoserver/server.js:42:16)
at emitTwo (events.js:126:13)
at Server.emit (events.js:214:7)
at parserOnIncoming (_http_server.js:602:12)
at HTTPParser.parserOnHeadersComplete (_http_common.js:117:23)
은 조심, 서버에서 라인 42 문자 16 ((한마리. server/server.js : 42 : 16))는 response.write(JSON.stringify(users, null, '\t'));
을 가리 킵니다.
제 3의 사용자를 찾기 전에 너무 오래 걸리는 루프와 관련이 있고 그 전에 연결이 닫히는 것처럼 느껴집니다. 이게 뭐야?
나는 충분한 정보를 제공했으면 좋겠다. 그렇지 않다면, 내가 당신의 원조에 도움이 될 수있는 다른 것들을 요청해야한다.
P. 영어가 모국어가 아니며 아직 고등학교에 다니고 있다는 것을 명심하십시오. 즉,이 텍스트에 몇 가지 실수가있을 수 있음을 의미합니다.
코드는 루프 내에서'response.end()'*를 호출합니다. * 항상 * "write after end"오류가 발생합니다. – Pointy
오, 이런, 나는 이것을 알아 채지 못했을 정도로 어리 석다, 고마워! 나는 그 순간에 너무 피곤한 것 같아요. 결과에 대해 실제로 생각하지 않고 주변을 움직이고 있다고 생각합니다. 나는 내일 계속할 것이다. 감사! –