>웹 프론트엔드 >JS 튜토리얼 >nodejs 튜토리얼 express를 설치하고 app.js file_json을 구성하는 자세한 단계

nodejs 튜토리얼 express를 설치하고 app.js file_json을 구성하는 자세한 단계

WBOY
WBOY원래의
2016-05-16 17:34:091277검색

express.js 설치

npm이 설치되어 있으면 설치가 매우 간단합니다. 터미널에서 다음 코드를 실행하면 됩니다.

코드 복사 코드는 다음과 같습니다.

npm install express -gd

-g는 NODE_PATH의 lib에 설치한다는 의미이고, -d는 종속성 패키지를 함께 설치한다는 의미입니다. -g가 없으면 현재 디렉터리가 설치됩니다(node_modules 폴더가 생성됨). 다음 명령을 통해 둘 사이의 차이점을 비교할 수 있습니다.

코드 복사 코드는 다음과 같습니다.

npm list -g
npm list

npm이 없으면 github을 사용하여 git에서 최신 Express를 다운로드할 수 있습니다.
자, 이제 express testapp을 통해 Express 인스턴스를 생성할 수 있습니다. 예를 들면 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

cd ~
express testapp
cd testapp
node app.js

이렇게 하면 testapp의 nodejs 애플리케이션이 생성되고, app.js가 기본 애플리케이션 메인 js입니다. app.js의 다양한 구성에 대해 자세히 이야기해 보겠습니다.

모듈 소개

코드 복사 코드는 다음과 같습니다.

var express = require('express');
var app = module.exports = express.createServer();

require()는 node.js에서 제공하는 함수로, 이를 통해 다른 모듈을 도입하여 모듈의 함수와 변수를 호출할 수 있습니다. 기본적으로 node.js는 $NODE_PATH의 모듈과 node_modules 폴더를 검색합니다. js가 위치한 현재 디렉토리. require는 직접 작성한 모듈을 로드하는 데에도 사용할 수 있습니다~ 여기에는 node.js의 모듈 메커니즘이 포함되는데, 나중에 기회가 되면 소개하겠습니다.

두 번째 줄의 express.createServer()는 서버를 구축하는 것이고, 중간에 있는 module.exports도 나중에 논의할 node.js의 모듈 메커니즘을 포함합니다.

express app.js에 대한 자세한 구성 지침

express.js는 연결 모듈에서 상속되므로 node_modules 폴더에 연결 모듈이 없으면 작동하지 않습니다.

뷰 경로 및 템플릿 설정
다음 두 줄을 살펴보겠습니다.

코드 복사 코드는 다음과 같습니다. 다음과 같습니다:

app.set('views', __dirname '/views');
app.set('view Engine', 'jade');

위 두 줄은 views 폴더, 즉 템플릿 폴더를 설정하는 것입니다. __dirname은 실행된 js를 가져오는 경로인 node.js의 전역 변수입니다. 현재 실행 중인 js 파일. 따라서 app.set('views', __dirname '/views')는 뷰가 설정된 폴더입니다.

그리고 app.set('view Engine', 'jade');는 express.js에서 사용하는 렌더링 엔진을 설정하는 것입니다. Jade 외에도 express.js는 EJS(임베디드 자바스크립트), Haml, CoffeScript 및 jQuery 템플릿과 같은 js 템플릿도 지원합니다.

app.use 구성

코드 복사 코드는 다음과 같습니다.

app.use(express.bodyParser() );
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname '/public'));

express.bodyParser()는 Connect에 내장된 미들웨어입니다. 이 설정을 설정하면 클라이언트가 제출한 게시물 요청을 request.body에 넣을 수 있습니다.
express.methodOverride()도 Connect에 내장되어 있으며 PUT, DELETE 및 기타 HTTP 메서드로 위장한 POST 요청을 처리하는 데 도움이 될 수 있습니다.
app.router()는 라우트 요청인데 express.js의 공식 문서에는 이 문장이 없어도 된다고 나와 있고, 테스트를 해본 결과 사실이지만 여전히 쓰여 있습니다.
express.static()은 CSS, js, img 파일 등과 같은 정적 요청을 처리하기 위한 Connect의 내장 미들웨어이기도 합니다. 따라서 static()에 지정된 폴더의 파일은 바로 정적 리소스로 뱉어지게 됩니다.

app.configure 설정

코드 복사 코드는 다음과 같습니다.

app.configure('development', function (){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use (express.errorHandler());
});

express.errorHandler()는 예외 처리를 돕는 Connect의 내장 미들웨어입니다. 이는 또한 app.configure()의 첫 번째 사용법을 보여줍니다. 첫 번째 매개변수는 node.js의 환경 설정이므로 다양한 실행 환경에서 다양한 덤프 수준을 설정할 수 있습니다. PS: node.js는 NODE_ENV 환경 변수를 통해 환경 설정을 얻습니다. 예: 명령줄에서 NODE_ENV=production node app.js는 프로덕션 환경에 들어갈 수 있습니다.

라우팅 및 요청 처리

좋아요, nodejs 처리 요청 내용은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

app.get('/', function (req, res){
res.render('index', {
title: 'Express'
});
});

위 코드는 get 요청 루트 디렉터리가 호출되면 views 폴더에 있는 인덱스 템플릿이 호출되고, 들어오는 매개변수 제목이 "Express"라는 의미입니다. 이 제목은 템플릿 파일에서 직접 사용할 수 있습니다.

Express에서 게시물 요청을 처리하려면 app.post()를 사용해야 합니다. 다음 코드와 같습니다:

코드 복사 코드는 다음과 같습니다.

app.post('/add', function(req ,res){
res.render('add', {
sum: req.body.a req.body.b
});
});

앞서 req.body가 POST 매개변수를 처리하는 express.bodyParser()의 결과라고 언급했습니다.

get 및 post 메소드 외에도 모든 요청 처리를 의미하는 app.all()도 있습니다.

listen을 추가하고 nodejs 서버를 시작하세요

코드 복사 코드는 다음과 같습니다.

app.listen(3000);
console.log(
"%s 모드에서 포트 %d을(를) 수신하는 Express 서버",
app.address().port,
app.settings.env);

지금까지 우리는 기본적으로 Express 구성을 이해했으며, 각 코드 줄의 의미를 모르고 이전처럼 다른 사람들과 hello world를 작성하지 않을 것입니다.

JS8.IN ™에서 재인쇄

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.