이번 주 에이 프로젝트는 흩어져있었습니다 (항상 이와 같았다 고 말해야합니다). 요약은 다양한 상황에 따라 이중 개봉해야합니다.이 기사는 노드에 대한 학습 요약을 기록하고 다음 기사는 프로젝트에서 배운 웹의 프론트 엔드에 대한 지식입니다.
1. http
노드의 HTTP 모듈은 첫 번째 기사에 노출되었습니다. 여기서 우리는 여러 루틴으로 나타나는 API를 배웁니다.
코드 사본은 다음과 같습니다.
var qs = 요구 사항 ( 'QueryString');
요구 ( 'http'). createServer (function (req, res) {
if ( '/'== req.url) {
res.writehead (200, { 'content-type': 'text/html'});
res.end ([[
'<form method = "post"action = "/url">',
'<h1> 내 양식 </h1>',
'<fieldset>',
'<라벨> 개인 정보 </label>',
'<p> 당신의 이름은 무엇입니까? </p>',
'<input type = "text"name = "name">',
'<p> <button> 제출 </button> </p>',
'</form>',
].가입하다(''));
} else if ( '/url'== req.url && 'post'== req.method) {
var body = '';
req.on ( 'data', function (chunk) {
몸 += 청크;
});
req.on ( 'end', function () {
res.writehead (200, { 'content-type': 'text/html'});
res.end ( '<b> 귀하의 이름은 <b>' + qs.parse (body) .name + '</b> </p>');
});
}또 다른{
res.writehead (404);
res.end ( '찾을 수 없음');
}
}). 듣기 (3000);
CreatsErver ([requestListener]) 함수의 매개 변수는 콜백 함수 함수 (req, res)이며, 여기서 req (요청 요청)는 http.incomingMessage의 인스턴스이며 res (응답)는 http.serverrrsponse의 인스턴스입니다.
URL, Method of Res 및 두 가지 메소드 Writehead and End를 사용했습니다. 이름에서 알 수 있듯이 URL은 HTTP (호스트 이름의 모든)를 기록하는 URL이며 메소드는 HTTP 응답을 기록하는 메소드입니다.
WriteHead (StatusCode, [rasePhrase], [Headers])는 HTTP 응답 헤더 정보를 보내는 데 사용됩니다. 이 방법은 메시지가 도착했을 때만 한 번만 호출되며 끝과 같은 메소드 전에 호출되어야합니다. 대신 그렇게하면 Writ
최종 메소드는 응답이 전송된다는 것을 나타내는 메시지를 서버로 보내므로 응답이 전송 될 때 마다이 방법을 호출해야합니다. 매개 변수에 컨텐츠 (예 : 루틴)가있는 경우이 방법은 쓰기 ( 'content', [encoding]) 및 종료 메소드를 모두 호출하는 것과 같습니다. 이것은 매우 편리합니다.
다음으로, 루틴은 req.on을 사용하여 이벤트를 듣고 req (메시지)에 바인딩합니다. 프로토 타입은 Emitter.on (이벤트, 리스너), req는 이벤트를 생성하는 객체이며, 청취 함수에서는 현재 청취 함수와 관련된 이벤트 미터 객체를 가리 킵니다.