> 웹 프론트엔드 > JS 튜토리얼 > Node.js 오픈 소스 애플리케이션 프레임워크 HapiJS 소개

Node.js 오픈 소스 애플리케이션 프레임워크 HapiJS 소개

PHPz
풀어 주다: 2018-09-29 17:25:01
원래의
2464명이 탐색했습니다.

이 글에서는 주로 Node.js 오픈소스 애플리케이션 프레임워크인 HapiJS의 소개를 소개합니다. 이 글에서는 HapiJS의 소개, HapiJS 설치, 프로젝트 구성 및 개발 예시가 필요한 경우 참고할 수 있도록 설명합니다.

1. HapiJS 소개

HapiJS는 Node.js 기반 오픈소스 애플리케이션 프레임워크로, 애플리케이션 구축 프로그램 및 서비스의 설계 목표는 개발자가 재사용 가능한 애플리케이션 비즈니스 로직 개발에 집중할 수 있도록 하고 애플리케이션 비즈니스 로직을 구축하는 데 필요한 인프라를 개발자에게 제공하는 것입니다. HapiJS의 최신 버전은 현재 버전 7.2.0입니다.

2. HapiJS 설치 및 프로젝트 구성

1. Hapi 라이브러리 설치
HapiJS 설치는 매우 간단합니다. 명령:

$ sudo npm install hapi -g
hapi@7.2.0 /usr/local/lib/node_modules/hapi
├── cryptiles@2.0.4
├── heavy@1.0.0
├── topo@1.0.2
├── accept@1.0.0
├── items@1.1.0
├── kilt@1.1.1
├── catbox-memory@1.1.0
├── boom@2.5.1
├── qs@2.2.4
├── call@1.0.0
├── statehood@1.2.0
├── h2o2@2.0.1
├── iron@2.1.2
├── shot@1.3.5
├── glue@1.0.0
├── wreck@5.0.1
├── hoek@2.8.0
├── catbox@4.0.3
├── vision@1.1.0
├── mimos@1.0.0 (mime-db@1.1.1)
├── rejoice@1.0.0 (bossy@1.0.2)
├── inert@1.1.0 (lru-cache@2.5.0)
├── joi@4.7.0 (isemail@1.1.1)
└── subtext@1.0.1 (content@1.0.1, pez@1.0.0)
로그인 후 복사

2. 프로젝트 구성

1) myproject라는 새 디렉토리를 생성합니다

$ mkdir myproject
$ cd myproject
로그인 후 복사

2) 디렉터리에서

$ npm init
로그인 후 복사

초기화 명령을 실행합니다. 이 명령은 프로젝트의 메타데이터인 package.json 파일을 생성합니다.
그런 다음 다음 명령을 실행합니다.

$ npm install --save hapi
로그인 후 복사

hapi 라이브러리를 프로젝트에 설치하고 hapi의 종속성을 package.json에 씁니다.

이제 프로젝트 개발에 필요한 모든 준비가 완료되었습니다.

3. 개발예

1. 서버를 생성합니다

// server.js
var Hapi = require('hapi');
var server = new Hapi.Server(3000);
server.start(function(){
console.log('Server running at: ', server.info.uri);
});
로그인 후 복사

먼저 Hapi 라이브러리가 필요합니다.

두 번째로 새로운 hapi 서버 객체를 생성하고 포트 번호를 전달하여 서버 객체를 수신합니다.

마지막으로 서버 개체가 시작되고 로그 정보가 출력됩니다.

설명하자면, 서버 개체를 생성할 때 호스트 이름, IP 주소 또는 Unix 소켓 파일이나 서버의 명명된 파이프에 바인딩된 Windows 시스템을 제공할 수 있습니다.

2. 서버 시작

명령 실행:

$ node server.js
로그인 후 복사
로그인 후 복사

http://127.0.0.1:3000/을 방문하면 브라우저에 다음 내용이 표시됩니다. 🎜>

{"statusCode":404,"error":"Not Found"}
로그인 후 복사
서버 자체에 콘텐츠가 없기 때문에 이는 정상적인 현상입니다.

3. 라우팅 논리

// server.js
var Hapi = require('hapi');
var server = new Hapi.Server(3000);
server.route({
method: 'GET',
path: '/',
handler: function(request, reply){
reply('Hello, world!');
}
});
server.route({
method: 'GET',
path: '/{name}',
handler: function(request, reply){
reply('Hello, ' + encodeURIComponent(request.params.name) + "!");
}
});
server.start(function(){
console.log('Server running at: ', server.info.uri);
});
로그인 후 복사
서버를 다시 시작합니다:

$ node server.js
로그인 후 복사
로그인 후 복사
http://127.0.0.1:3000/을 방문하면 브라우저에 다음이 표시됩니다. 다음 콘텐츠 :

Hello, world!

http://127.0.0.1:3000/Zhang San을 방문하면 브라우저에 다음 콘텐츠가 표시됩니다.

Hello, Zhang San !

라우팅 로직이 정상적으로 실행되는 것을 볼 수 있습니다.

참고:

method의 매개변수는 유효한 HTTP 메서드이거나 별표 *(HTTP 메서드를 나타냄)일 수 있습니다.
path의 매개변수는 매개변수, 선택적 매개변수, 심지어 와일드카드까지 포함할 수 있는 액세스 경로를 정의합니다.

4. 플러그인 사용

웹 애플리케이션을 만들 때 일반적으로 로그에 액세스해야 합니다. 애플리케이션에 기본 로깅 출력을 추가하려면 서버에 좋은 플러그인을 로드하면 됩니다.

1. 좋은 플러그인 설치

$ sudo npm install --save good
good@3.1.1 node_modules/good
├── json-stringify-safe@5.0.0
├── good-reporter@2.0.0
├── async@0.9.0
├── hoek@2.8.1
├── moment@2.8.3
├── good-file@2.0.0 (items@1.1.0)
└── joi@4.7.0 (topo@1.0.2, isemail@1.1.1)
로그인 후 복사
2. server.js 코드 업데이트

// server.js
var Hapi = require('hapi');
var Good = require('good');
var server = new Hapi.Server(3000);
server.route({
method: 'GET',
path: '/',
handler: function(request, reply){
reply('Hello, world!');
}
});
server.route({
method: 'GET',
path: '/{name}',
handler: function(request, reply){
reply('Hello, ' + encodeURIComponent(request.params.name) + "!");
}
});
server.pack.register(Good, function(err){
if(err){
// something bad happened loading the plugin
throw err;
}
server.start(function(){
server.log('info', 'Server running at: ' + server.info.uri);
});
});
로그인 후 복사
server.js 실행, 콘솔 출력:

141102/161007.644, info, Server running at: http://localhost:3000
로그인 후 복사
다음을 방문하면: http://127.0.0.1:3000

콘솔은 계속해서 다음을 출력합니다:

141102/161150.689, request, http://Thinker-LQ:3000: get /liqiang {} 200 (37ms) 
141102/161155.812, request, http://Thinker-LQ:3000: get / {} 200 (4ms)
로그인 후 복사
위는 이 장의 요약입니다. 모든 내용은

Node.js 비디오 튜토리얼을 방문하여 더 많은 관련 튜토리얼을 확인하세요!

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