Nodejs는 http 서버를 구축합니다.

王林
풀어 주다: 2023-05-11 21:28:37
원래의
1345명이 탐색했습니다.

Node.js는 Chrome V8 엔진을 기반으로 구축된 JavaScript 실행 환경으로 웹 애플리케이션 개발에 널리 사용됩니다. Node.js에서는 쉽게 HTTP 서버를 구축하고 브라우저를 통해 서버의 웹 페이지에 액세스할 수 있습니다. 이 기사에서는 Node.js를 사용하여 HTTP 서버를 구축하는 방법을 소개합니다.

  1. Node.js 설치

먼저 Node.js 환경을 로컬에 설치해야 합니다. Node.js 공식 웹사이트(https://nodejs.org/)에 접속하여 최신 버전을 다운로드하고 설치할 수 있습니다. 설치가 완료된 후 명령줄에 다음 명령을 입력하여 설치 성공 여부를 확인할 수 있습니다.

node -v
로그인 후 복사

Node.js 버전 번호가 올바르게 표시되면 설치가 성공한 것입니다.

  1. HTTP 서버 만들기

Node.js로 HTTP 서버를 만드는 것은 매우 쉽습니다. JavaScript 파일에 Node.js의 내장 "http" 모듈을 도입하고 서버를 생성하고 지정된 포트를 수신하기만 하면 됩니다. 다음은 간단한 예입니다.

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    res.end('Hello World!
');
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});
로그인 후 복사

위 코드는 HTTP 서버를 생성하고 포트 3000을 수신합니다. 클라이언트가 서버에 액세스하면 "Hello World!" 문자열이 반환됩니다.

  1. HTTP 서버 액세스

HTTP 서버를 시작한 후 브라우저를 사용하여 서버에 액세스할 수 있습니다. 브라우저의 주소 표시줄에 "http://localhost:3000"을 입력하면(서버가 로컬로 실행되지 않는 경우 "localhost"를 서버 IP 주소로 대체) 브라우저에 "Hello World!" 문자열이 표시되는 것을 볼 수 있습니다.

  1. HTTP 요청 처리

위의 예는 가장 간단한 예일 뿐입니다. 실제로 HTTP 요청을 처리할 때 요청 헤더와 요청 본문의 내용을 기반으로 해당 응답을 생성해야 합니다. Node.js의 http 모듈은 요청 처리를 위해 특별히 API를 제공합니다. 예를 들어 req.url을 통해 요청한 URL 주소를 얻을 수 있고, req.method를 통해 요청한 메소드를 얻을 수 있습니다. 다음은 다양한 URL 주소에 따라 다양한 메시지를 반환하는 예입니다.

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
    res.statusCode = 200;
    res.setHeader('Content-Type', 'text/plain');
    if (req.url === '/about') {
        res.end('This is about page');
    } else if (req.url === '/contact') {
        res.end('This is contact page');
    } else {
        res.end('Hello World!
');
    }
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});
로그인 후 복사

브라우저에서 "http://localhost:3000/about"을 방문하면 브라우저에 "This is about page" 문자열이 표시되는 것을 볼 수 있습니다. " http://localhost:3000/contact"를 입력하면 브라우저에 "연락처 페이지입니다"라는 문자열이 표시됩니다. "http://localhost:3000"을 방문하면 브라우저에 "Hello World!" 문자열이 표시됩니다.

  1. POST 요청 처리

GET 요청을 처리하는 것 외에도 POST 요청을 처리하고 클라이언트가 서버에 전달한 데이터를 저장할 수도 있습니다. Node.js의 http 모듈은 POST 요청을 처리하기 위한 API도 제공합니다. 다음은 간단한 POST 요청 처리 예시입니다.

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
    if (req.method === 'POST') {
        let body = '';
        req.on('data', chunk => {
            body += chunk.toString();
        });
        req.on('end', () => {
            console.log(`Received data: ${body}`);
            res.end('Data received');
        });
    } else {
        res.statusCode = 200;
        res.setHeader('Content-Type', 'text/plain');
        res.end('Hello World!
');
    }
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});
로그인 후 복사

위 코드는 HTTP 요청을 처리할 때 먼저 요청 방법이 POST인지 확인하고, POST인 경우 데이터 전송 이벤트를 모니터링하여 전송된 데이터를 바디에 저장합니다. 변수로 설정하고 데이터 전송이 완료된 후 인쇄합니다. 클라이언트 HTML 파일에서

요소를 사용하여 POST 요청을 제출할 수 있습니다. 예:

<!DOCTYPE html>
<html>
<head>
    <title>POST Request Example</title>
</head>
<body>
    <form action="http://localhost:3000" method="post">
        <label for="name">Name:</label>
        <input type="text" id="name" name="name"><br><br>
        <label for="email">Email:</label>
        <input type="email" id="email" name="email"><br><br>
        <input type="submit" value="Submit">
    </form>
</body>
</html>
로그인 후 복사

양식을 작성한 후 제출 버튼을 클릭하면 POST 요청이 HTTP 서버에 제출되고 데이터가 전송됩니다.

요약

Node.js를 사용하여 HTTP 서버를 구축하는 것은 매우 간단하고 확장성과 사용자 정의 가능성이 좋습니다. 이 문서에서는 HTTP 서버를 만들고, HTTP 요청을 처리하고, POST 요청을 처리하는 방법을 설명합니다. 위의 지식을 학습함으로써 우리는 신속하게 자체 웹 애플리케이션을 구축하고 효율적이고 안정적인 웹 서비스를 구축할 수 있습니다.

위 내용은 Nodejs는 http 서버를 구축합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿