이번 주의 프로젝트 작업은 상대적으로 분산되어 있어서(늘 그래왔었다고 해야 하겠지만) 요약은 상황에 따라 두 부분으로 나누어서 하겠습니다~ 이번 글은 노드에 대한 학습 요약을 기록한 글이며, 다음 글은 프로젝트 진행 중에 배운 웹 프론트엔드 지식에 관한 글입니다.
1.HTTP
첫 번째 글에서 node의 HTTP 모듈이 노출되었습니다. 여기서는 여러 루틴에 등장하는 API에 대해 알아보겠습니다.
require('http').createServer(function(req, res){
If('/' == req.url){
res.writeHead(200, {'Content-Type': 'text/html'});
res.end([
'
creatServer([requestListener]) 함수의 매개변수는 콜백 함수 함수(req, res)입니다. 여기서 req(요청)은 http.IncomingMessage의 인스턴스이고 res(응답)는 http.ServerRrsponse의 인스턴스입니다. .
res url, 메소드 문자열, writeHead 및 end라는 두 가지 메소드를 사용했습니다. 이름에서 알 수 있듯이 url은 HTTP(호스트 이름 뒤의 모든 내용)를 기록하는 URL이고, method는 HTTP 응답을 기록하는 방법입니다.
writeHead(statusCode, [reasonPhrase], [headers])는 http 응답 헤더 정보를 보내는 데 사용됩니다. 이 메소드는 메시지가 도착할 때 한 번만 호출되며 end 메소드 전에 호출되어야 합니다. 대신 이 작업을 수행하고 write(chunk, [encoding]) 또는 end([data], [encoding]) 메서드를 먼저 호출하면 시스템은 자동으로 보이지 않는 휘발성(즉, 잘못된) 응답 헤더 콘텐츠를 기록합니다. writeHead 메서드를 호출합니다.
end 메소드는 응답 정보가 전송되었음을 알리는 메시지를 서버에 전송하므로 응답이 전송될 때마다 이 메소드를 호출해야 합니다. 매개변수에 콘텐츠(예: 루틴)가 있는 경우 이 메서드는 write('content', [encoding]) 및 end 메서드를 동시에 호출하는 것과 동일합니다. 이것은 매우 편리합니다.
다음으로 루틴은 req.on을 사용하여 이벤트를 수신하고 이를 req(메시지)에 바인딩합니다. 프로토타입은 Emitter.on(event,listener)이고, req는 이벤트를 생성하는 객체이며, 청취 함수에서 이는 현재 청취 함수와 연관된 EventEmitter 객체를 가리킵니다.