node.js 입문 [작은 웹 서버 만들기]
6202 단어 node.js
간단한 웹 서버 만들기
간단하게 말하면 웹 서버의 가장 기본적인 기능은 클라이언트 브라우저가 제공하는 http 요청에 따라 응답할 수 있는 것이다.
당신의 노드를 사용해야 합니다.js의 파일 모듈,require("fs")를 사용하여 파일 모듈을 가져와야 합니다. 다음은 file 모듈의 몇 가지 기본 함수입니다.
1.readfile (filename, [encoding], [callback]) 비동기적으로 전체 파일의 내용을 읽습니다.
filename에서 읽어야 할 파일 이름 encoding 읽기 파일의 인코딩 형식을 무시할 경우 데이터 버퍼 대상인callback 읽기 파일의 리셋 함수를 되돌려줍니다. 이 함수는 두 개의 인자,err와 데이터,err가 읽기 과정에 발생한 오류를 되돌려줍니다.
var fs=require("fs");
fs.readFile("index.htm",function(err,data){
if(err)throw err;
else
console.log(data);
});
2.exits 비동기적으로 주어진 파일이나 경로가 존재하는지 테스트합니다.
path: 주어진 화전이나 경로callback: 리셋 함수가true나false로 되돌아와 주어진path가 존재하는지 여부를 나타냅니다.
var fs=require("fs");
fs.exists("index.htm",function(exists){
if(exists)console.log("file exists");
else
console.log("file not found");
});
3. 이제 우리는 간단한 웹 서버를 완성할 수 있다.
서버를 만듭니다.js 파일
var http=require("http"),
fs=require("fs"),
url=require("url");
// httpServer
var HttpServer=function(port){
// http httpserver
this.server=http.createServer(doRequest);
//
this.port=port;
//
function loadStaticResource(request,response) {
// url url
var pURL=url.parse(request.url);
var fName=__dirname+pURL.pathname;
fs.exists(fName,function(exists){
if(exists){
fs.readFile(fName,function(err,data){
if(err)throw err;
else{
// mime
var contentType="text/html";
response.writeHead(200,{"Content-type":contentType});
response.write(data);
response.end();
}
});
}
else {
response.end("404 not found");
}
})
}
//
function doRequest(request,response){
loadStaticResource(request,response);
};
}
// httpserver start
HttpServer.prototype.start=function() {
this.server.listen(this.port);
console.log("listen"+this.port);
}
// httpserver
var server=new HttpServer(9001);
// server
server.start();
4. 코드 해석
우선 자주 사용하는 노드 3개를 가져옵니다.js모듈, 즉 http, fs와 url모듈, http모듈은 주로 http 서비스와 관련된 기능을 제공하고 fs는 파일 조작 기능을 제공하며 url는 url에 대한 해석 기능을 제공한다.
필요한 모듈을 가져온 후 httpserver의 함수 대상을 정의했습니다. 이 대상은 두 가지 속성을 정의했습니다. 하나는 서버입니다. 하나는 서버입니다. http를 통해 만든 서버를 가리키는 것이고 하나는port입니다. 귀속 감청에 사용되는 포트입니다.위에서 나는 이것을 썼다.서버 및this.port.
createserver에서 Requestlisten 함수를dorequest 방법을 가리키고dorequest 방법에서loadstaticresourse 방법을 호출했습니다.loadstaticresourse 함수에서 다음과 같은 몇 가지 작업을 했습니다. 우선, URL을 통해.parse 방법은request의 URL 대상을 해석하고 해석한 후에 URL을 통해 해석할 수 있습니다.pathname 클라이언트가 요청한 파일 이름을 가져옵니다.그런 다음 __ 를 사용합니다.dirname+url.parthname, 서버에서 요청 파일의 절대 위치를 가져옵니다. __dirname은 node입니다.js의 전역 변수를 통해 현재 실행 스크립트가 있는 경로를 찾을 수 있습니다.마지막으로, fs를 호출합니다.exists 방법은 사용자가 요청한 파일이 존재하는지 확인합니다. 존재하면 이 파일을 읽고response의 write 방법으로 모든 파일 내용을 클라이언트 브라우저에 출력합니다. 그렇지 않으면 404를 출력합니다.
자, index를 만듭니다.html 파일, 브라우저에 접근http://localhost:9001/index.htm자원에 접근하면 됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express + AWS S3 이미지 업로드하기웹 사이트 및 모바일 애플리케이션 등에서 원하는 양의 데이터를 저장하고 보호할 수 있다. 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공한다. AWS S3 에 저장된 객체에 대한 컨테이너...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.