Express.js 시작하기

Jan 31, 2026
어떻게
Get started with Express.JS

node.js로 브라우저 직면 응용 프로그램을 만드는 것은 지루합니다. 익스프레스 a. 자바 스크립트 프레임 워크 node.js 환경에서 호스팅되는 단일 페이지 및 다중 페이지 응용 프로그램 전용.

  • 29 워크 플로우 속도를 높이는 웹 디자인 도구

이미 익숙한 Node.js 기능을 모호하게하지 않는 기본 웹 응용 프로그램 기능의 얇은 웹 앱 기능을 제공하므로 완성 된 앱이 성능을 현명하게 시작할 수 있는지 확인할 수 있습니다. 또한 HTTP 유틸리티 메소드 및 미들웨어 사용할 준비가 된 스택 덕분에 강력한 API를 만드는 것에도 좋습니다.

덜 복잡한 옵션을 원한다면 코딩없이 사이트를 만들 수 있습니다. 웹 사이트 빌더 ...에 어느 쪽이든, 당신이 얻을 수 있는지 확인하십시오 웹 호스팅 서비스 권리. 시작하고 싶습니까? Express.js에 대해 알아야 할 것이 있습니다.

01. 실행 가능한 구조를 생성하십시오

Get started with Express.JS: Generate a workable structure

시작하기 위해 올바른 작업 옵션을 소개합니다

Express.js는 '조개미지'를 자랑스럽게 생각합니다. 즉, 개발자는 아키텍처, 템플릿 및 마크 업 엔진의 관점에서 개발자가 믹스하고 일치하도록 허용합니다. 슬프게도, 큰 힘으로 큰 책임이 있습니다.

Express Developer 팀은 프로젝트 생성기를 도입함으로써 타격을 부드럽게하고 있습니다 (팀과 함께 설계하고, 최선을 배포하는 경우 클라우드 스토리지 사물을 응집력을 유지하기 위해). NPM 패키지의 형태로 워크 스테이션에 관해서 다음 프레임 워크를 사용하여 실험을 돕습니다.

 Tamhan @ Tamhan-ThinkPad : ~ / 데스크탑 /
Stuff / 2018AUG / Futureexpressjs /
작업 공간 $ sudo npm 설치
익스프레스 발전기 -g 

발전기에는 수십 개의 프로젝트 옵션이 포함되어 있습니다.이 단계는 전체 도움말 출력을 보여줍니다. 단순함을 위해 기본 설정을 기반으로 프로젝트로 스스로를 제한합니다. 세대 프로세스를 꺼내십시오.

 Tamhan @ Tamhan-ThinkPad : ~ / 데스크탑 /
Stuff / 2018AUG / Futureexpressjs /
작업 공간 $ Express FutureTest 

경고 : 기본보기 엔진은 향후 릴리스에서는 비취가 아닙니다.

완료되면 현재 작업 디렉토리에는 'FutureTest'라는 새 폴더가 포함되어 있습니다. 테스트 프로젝트의 홈이며 NPM의 패키지 다운로드 명령을 사용하여 구성해야합니다. 글을 쓰면서 발전기에는 비취 뷰 생성기가 포함됩니다. 프로젝트가 가까운 장래에 이것을 변경할 계획이며 뷰 엔진을 선택하는 매개 변수를 선택하는 매개 변수를 전달합니다. 또는 Pug의 사용을 요청하십시오 - 옥 엔진의 공식 후계자입니다.

 CD Futuretest /
NPM 설치 

02. 응용 구조를 이해하십시오

이제 프로젝트 생성기가 그 일을 해왔으므로 선택 편집기에서 app.js를 열어 보겠습니다. 그것의 - 많은 요약 - 구조체는 다음과 같이 자체를 제공합니다.

 var indexRouter = 요구 ( './
경로 / 색인 ');
var usersrouter = requient ( './
경로 / 사용자 ');
var app = express ();
// 엔진 설정보기
app.set ( 'views', path.join (__
dirname, 'views'));
app.set ( 'view Engine', 'jade');
App.Use (로거 ( 'dev'));
app.Use (express.json ());
app.Use (Express.Urlencoded ({
확장 : 거짓}));
App.Use (cookieParser ());
app.Use (Express.Static (경로)
가입 (__ dirname, 'public'))); 

Express.js는 매우 모듈러입니다. app.js는 하나 이상의 '사용 ()'함수가 다양한 요청을 처리하기위한 구성 요소의 추가를 허용하는 엔트리 포인트 역할을합니다. 'set ()'의 호출하면 엔진의 매개 변수를 조정할 수 있습니다. 그 중 하나는 이전 단계에서 언급 한 옥보기 엔진의 설치입니다.

웹 콘텐츠의 실제 방출은 라우터 클래스에서 발생합니다. 간결함을 위해서는 index.js로 자신을 제한합시다.

var express = 요구 ( '익스프레스'); var router = express.router (); router.get ( '/', 함수 (REQ, RES, 다음) { res.render ( '색인', {제목 : '표현하다' }); }); module.exports = 라우터;

'get ()'에는 일치 자열과 해당 이벤트가 발생할 때마다 호출되는 이벤트 핸들러가 제공됩니다. 우리의 경우, 선택한 템플릿 엔진의 렌더링 방법은 로그인 한 사용자의 브라우저로 내용을 반환하라는 메시지가 표시됩니다.

03. 웹 페이지를 실행하십시오

이 시점에서 우리는 처음으로 스핀을 위해 웹 사이트를 가져갈 준비가되었습니다. Express.js 설치가 포함 된 터미널로 돌아가서 디버그 플래그 세트로 NPM 시작을 호출하십시오.

 debug = myApp : * NPM 시작 

완료되면 Project Generator가 만든 스캐 폴딩을 선택하기 위해 HTTP : // localhost : 3000 /를 선택할 수있는 브라우저에 입력하십시오. 완료 되면를 누릅니다 Ctrl. + 창을 닫고 명령 줄 인터프리터에 대한 컨트롤을 반환하려면 - 이는 디버깅 웹 서버도 닫힙니다.

04. 라우팅 및 엔드 포인트에 관한 모든 것입니다

Get started with Express.JS: Routing and endpoints

오른쪽 진입 점 정렬, 새 경로 추가 및 정규 표현식 지원 소개

단순화를 위해 웹 응용 프로그램이 일반적으로 일련의 진입 점으로 구성되어 있음에 동의하게하십시오. Express.js는 라우터 클래스를 통해이를 처리합니다.이를 들어오는 요청에 따라 호출되는 메소드의 저장소로 생각합니다.

응용 프로그램에 새 엔드 포인트를 추가하면 새 작업자를 대기열에 추가하여 수행됩니다. 우리의 자동 생성 예제는 'Require'메서드를 사용하여 각각 2 개의 라우터 유형을 생성합니다.

 var indexRouter = 요구 ( './
경로 /
인덱스');
var usersrouter = requient ( './
경로 /
사용자의); 

다음 단계에서 'app.use'라우터를 등록하고 요청 문자열에 연결합니다. 우리 코드는 기존 URL이 아닌 URL이 시스템에 입력되면 호출되는 오류 처리기를 추가합니다.

 app.Use ( '/', indexRouter);
app.Use ( '/ users', usersrouter);
App.Use (기능 (기능 (Req, RES, Next)
{
  다음 (CreateError (404));
}); 

05. 새로운 경로를 만듭니다

users.js를 열고 아래와 같이 코드를 수정하십시오.

 Router.get ( '/ user1', 함수 (req,
res,
다음) {
  res.send ( '미래는 안녕하세요)
1');
});
router.get ( '/', 함수 (REQ, RES,
다음) {
  res.send ( 'A.와 응답하십시오
자원');
}); 

Express.js에 새로운 경로를 추가하는 것은 기계적 프로세스입니다. 선택한 라우터 객체를 잡고 처리하려는 HTTP 동사에 해당하는 메서드를 호출합니다. 그런 다음 'app.use'에 등록 된 '오프셋'에 추가 될 문자열을 전달하십시오. 그 순간부터 HTTP : // localhost : 3000 / Users / User1 및 http : // localhost : 3000 / 사용자 / 유효한 응답을 반환합니다.

Express.js는 '얻기'자원을 처리하는 것에 국한되지 않습니다. 'post ()', 'put ()'와 'delete ()'는 더 비정상적인 요구를 취급하는 수십 개의 추가적인 동사 메소드가있는 전통적인 4 개의 HTTP 요청을 처리합니다. 마지막으로 'req'객체는 요청 헤더에 대한 액세스를 제공합니다. 파라미터 또는 클라이언트 정보를 구문 분석 할 때 잘 사용할 수 있습니다.

06. 고급 매칭

손으로 경로를 추가하면 프로그램 복잡성이 커짐에 따라 지루해집니다. Express.js는 와일드 카드와 정규 표현식 지원을 도입 하여이 문제를 해결합니다. 예를 들어, 문자 시퀀스 개가 포함 된 다양한 문자열과 일치하도록 정규 표현식을 사용하는 다음 선언을 살펴보십시오.

 app.get (/ "$ /, 함수 (req,
res) {
  ...}) 

07. 비정상적인 라우팅

4 개의 HTTP 요청을 처리하는 동안 누구나 충분해야합니다 (HAT 팁 빌 게이츠에 대한 빌 게이츠). Express.js는 추가 프로토콜로 작업 할 수 있습니다. 익스프레스 -WS. 이 섹션의 특히 맛있는 후보자입니다. 이는 WebSocket 통신을 포함하도록 Express.js의 REACH를 확장합니다.

플러그인이 Main Express.js 프로젝트에 추가되면 '요구'호출을 통해 수행 할 수 있습니다. 하나의 메서드를 포함하는 모든 헬퍼 객체를 반환합니다. 라우터와 플러그인 간의 연결을 설정하는 데 호출합니다.

 VAR EXPRESSWS = 필요 ( '익스프레스 -
WS '
앱);
그런 다음 'ws ()'라는 새로운 메소드를 호출하여 WebSocket 기술을 기반으로 새 경로를 추가 할 수 있습니다.
app.ws ( '/', 함수 (WS, REQ) {
  ws.on ( '메시지', 함수 (msg)
{
    console.log (msg);
  });
  console.log ( '소켓', req.
테스트); }); 

그들의 프로토 타입은 'WS'객체가 존재하므로 일반적인 경로와 다릅니다. 연결을 담당하는 클라이언트에 연결된 기본 WebSocket 인스턴스에 대한 액세스를 제공합니다.

08. 데이터베이스 및 템플리팅 엔진 통합

Get started with Express.JS: Integrate databases and templating engines

풍부한 플러그인 생태계의 힘을 고용해야합니다.

node.js를 기반으로하는 것은 웹 기반 응용 프로그램에서 작업 할 때 풍부한 플러그인 생태계가 명령에 있습니다. 예를 들어 SQL 및 NOSQL 데이터베이스에 액세스하는 것은 일반적으로 매우 지루한 작업이 제공됩니다. 데이터베이스 공급 업체가 제공하는 플러그인을 사용하여 처리 할 수 ​​있습니다. 실제 배포는 필요한 NPM 모듈을 설치하는 것만 쉽습니다. 코드가 RedIS 데이터베이스에 액세스하는 경우 다음을 추가하기 만하면됩니다.

var redis = 요구 ( 'redis')
var 클라이언트 = redis.createClient ()
client.set ( 'stringkey', 'aval',
redis.print)
...에 ...에 . 

물론 메모리 내 SQLite도 지원됩니다.

 VAR SQLITE3 = 필요 ( 'SQLite3').
말 수가 많은()
var db = new sqlite3.
데이터베이스 ( ': 메모리 :')
db.Serialize (함수 () {
  db.run ( '테이블 작성)
(정보 텍스트) ') 

node.js 통합은 데이터베이스 플러그인에만 국한되지 않습니다. 모험적인 개발자는 테셀과 같은 제품을 포함하므로, 또한 웹 응용 프로그램을 만드는 웹 응용 프로그램을 만듭니다. 사물의 인터넷 장치.

09. 스타일의 템플릿

간단하고 실제 프로그램이 다른 한 영역은 뷰 생성입니다. 작은 예제 프로젝트는 일반적으로 손으로 만들어진 문자열을 사용하는 동안 연결된 것들의 문자열이있는 HTML의 큰 스위트를 조립하는 것은 매우 짜증나는 것입니다.

템플릿 엔진은 깔끔한 해결 방법을 제공합니다. 이전 프로그래밍 방식으로 실행될 수있는 미리 정의 된 스키마 파일 생성을 허용합니다.

예제 프로그램의 경우 뷰는 .jade 파일에 누워 있습니다. 개방 색인은 다음과 같은 구조를 나타냅니다.

 레이아웃을 확장합니다
콘텐츠를 차단합니다
  h1 = 제목
  P # {Title}에 오신 것을 환영합니다 

곱슬 괄호로 묶인 표현식은 런타임에 값을 교체 할 템플릿 필드 역할을합니다. index.js는 매개 변수 개체로 렌더링을 호출 하여이 단계에서 수반되는 그림 페이지의 렌더링을 선도합니다.

 Router.get ( '/', 함수 (req, res,
다음) {
  res.render ( '색인', {제목 :
'표현하다' });
}); 

대부분의 템플릿 엔진은 항목 템플리트가 제공되면 배열을 파싱 할 수 있습니다. 이 경우, 어레이의 모든 행은 Android에서 발견 된 목록 디스플레이 모델과의 유사점과 하나의 DOM 모델의 인스턴스와 함께 표시됩니다. Express.js는 미리 정의 된 템플릿 엔진에만 국한되지 않습니다. 어떤 이유로 나 자신의 밖으로 나가는 것처럼 느껴야 할 사항을 알려주는 단계를 따르십시오. 여기 - 원칙적으로 하나의 함수를 제외한 모든 기능을 무시해야합니다.

10. 정적 콘텐츠를 처리합니다

Express.js 응용 프로그램에는 CSS 파일과 그림이 포함되는 경향이 있습니다. 렌더링 기능을 통해 이들을 제공하는 것은 비효율적이지 않습니다. 똑똑한 방식으로 전통적인 HTTP 요청으로 메리 방식으로 보내는 것입니다. 이것은 내보내기를 위해 전체 폴더를 표시 할 수있는 'Express.static ()'함수를 통해 달성 할 수 있습니다.

 App.Use (Express.Static ( 'public')))
app.use (Express.Static ( '파일')) 

11. 이벤트 흐름을 수정하십시오

마지막으로, 미들웨어라는 용어라고 언급 할 수있게하십시오. Express.js Parlance에서 미들웨어는 반대시 표시된 순서도에 자신을 통합하는 하나 이상의 구성 요소 집합입니다. 그런 다음 라우팅 시스템을 통과 할 때 요청을 수정하는 데 사용될 수 있습니다. - 올바르게 구현할 때 무한한 기능을 얻을 수 있습니다.

또한 일부 준비 구성 요소를 찾을 수 있습니다 여기 - 대규모 개발 프로젝트를 시작하기 전에이 사이트를 방문하십시오.

12. Express.js 앱을 호스팅하는 방법

Get started with Express.JS: How to host an Express.JS app

새 창조를 호스팅 할 수있는 플랫폼을 고려하십시오.

Express.js 기반 응용 프로그램을 테스트하는 것은 쉽습니다. 문제가 제 3 자에게 액세스 할 수있게되기를 원한다면, Node.js 환경에서 생성되므로 웹 호스팅 서비스에 대한 FTP 배포에 정적 이미지 맞춤을 얻을 수있는 방법이 없습니다.

이론에서는 라스베리 PI, OrangePI, 전용 서버 또는 가상 호스팅을 제공하는 웹 호스트 공급자에서 임대 한 라스베리 PI, OrangePI, 전용 서버 또는 가상 컴퓨터를 사용하는 것이 없습니다. 그러나 전체 가상 컴퓨터를 임대하면 실행 환경 및 운영 체제를 최신 상태로 유지할 책임을 맡을 수 있습니다.

이 작업이 맛이 아닌 경우 플랫폼 -S-A-Service Provider가 더 매력적일 수 있습니다 (대부분의 경우, 예쁜 가격, 가격이 비싸다).

많은 개발자들이 Heroku를 고려 하여이 상자에 수반되는 수치에 표시된 가격으로 Node.js 호스팅과 관련된 모든 것에 대한 금 표준이됩니다.

그러나 이것은 아마존의 탄력성 콩 톡, Google의 클라우드 플랫폼 및 Microsoft의 Azure가 모두 Node.js 기반 페이로드의 원격 실행을 위해 유사한 지원을 제공합니다. 이러한 모든 시스템에서 주요 문제는 처리 중이는 동안 Azure가 느린 배포로 알려져 있지만 다른 공급자 부담 개발자는 매우 복잡한 구성 시스템의 백 엔드 서비스가 어려운 백엔드 서비스를 제공합니다.

또한 지원되는 node.js 환경의 지원되는 버전은 공급자와 공급자와 다릅니다. 물론 주제를 깊이 덮을 충분한 공간이 없습니다. 방문 모질라의 배치 자습서 express.js ' 성능 및 신뢰성 보안 관련된 일부 문제에 대한 모범 사례 페이지. 공급자의 문서를 보면 더 많은 모범 사례를보십시오.

13. 미래의 애플리케이션을 증명합니다

Get started with Express.JS: Future-proof your applications

새로운 새로운 추가 사항을 주목해야합니다

Express.js의 개발주기는 부드럽습니다. 개발자는 클라이언트 코드를 다시 작성 해야하는 빈번한 API 변경으로 잘 알려져 있습니다. 3.x에서 4.x까지의 스위치는 특히 고통 스럽 었습니다. 그래서 5.x의 임박한 방출이 당신 중 몇 가지가 불편한 느낌을 남길 수 있습니다.

Express.js 5.0이 몇 가지 깨진 변화를 가져 오는 동안, 그들의 영향은 더 제한적입니다. 우선, 이미 코드가 여전히 사용하는 경우, 5.x로 업그레이드하는 코드가 여전히 사용하는 경우, 이미 사용되지 않는 기능 세트가 제거됩니다.

View Engines의 설계자는 'Res.Render () :'렌더러를 볼 수있는 렌더러에 관해서는 등급 증가를 확인해야합니다. 프레임 워크의 버전 5는 비동기 렌더링을 시행하여 성능을 향상시킵니다.

그 외에도 일련의 일련의 개선 및 변경 사항 여기 이전 버전에서 일부 멸종 된 기능의 반환을 보았습니다. 또한 일부 오랫동안 서있는 버그가 새 릴리스에서 수정됩니다.

마지막으로 이미 새 버전을 시도 할 수 있음을 알아야합니다. 단순히 소스 코드의 사본을 작성하고 터미널을 잡고 다음 명령을 입력하여 간신히 테스트 한 출혈 첨단 자바 스크립트의 가치를 다운로드하십시오. 안전한.

 $ NPM express @ & gt; = 5.0.0-
alpha.1 --save 

이 기사는 원래 Creative Web Design Magazine Web Designer의 문제 279에 출판되었습니다. 여기 문제를 구입하십시오 또는 웹 디자이너를 구독하십시오 ...에

관련 기사:

  • 새로운 Node.js 8에 대해 알아야 할 모든 것
  • 20 Node.js 모듈을 알아야합니다
  • 25 게임 변경 자바 스크립트 도구

어떻게 - 가장 인기있는 기사

현실 캡처가있는 3D 스캔을 만드는 방법

어떻게 Jan 31, 2026

(이미지 크레디트 : Phil Nolan) 현실 캡처는 자신의 3D 스캔을 만드는 좋은 방법입니다. 카�..


트위터 바이오에서 글꼴을 변경하는 방법

어떻게 Jan 31, 2026

트위터에 많은 사람들이 있습니다 - 26100 만 트위터 계정은 마지막으로 확인했습니다. 그리고 그�..


라인 아트를 사용하여 환영 인테리어를 만듭니다

어떻게 Jan 31, 2026

이 워크샵을 위해 나는 라인 아트와 질감 된 페인트 스타일을 갖춘 인테리어 배경을 만들 것입니�..


친 화성 디자이너 : 제약 조건을 사용하는 방법

어떻게 Jan 31, 2026

친 화성 디자이너는 인기가 있습니다 벡터 아트 수단. Mac 및 Windows 버전뿐만 �..


iClone 7으로 차량 애니메이션 만들기

어떻게 Jan 31, 2026

애니메이션 만들기 또는 3D 영화 바퀴가 달린 차량과 관련된 차량은 모델의 움직임이 �..


HTML 비디오 작업 방법

어떻게 Jan 31, 2026

YouTube를 위로 이동하십시오 ... & lt; 비디오 & gt; 요소와 조금 자바 스크립트 , 자�..


연필로 맛있는 텍스처를 만드는 방법

어떻게 Jan 31, 2026

학습 할 때 그리는 방법 아직도 생활 작품 인이자를 만드는 것이 중요하고 다양한 맛�..


블렌더에서 멋진 Tileable 텍스처 만들기

어떻게 Jan 31, 2026

페이지 1 / 2 : 페이지 1 페이지 1 ..


카테고리