2017-02-23 2 views
0

Express 미들웨어에서는 요청, 응답, 다음의 3 가지 매개 변수를 가져야합니다. 그러나, 책에서 복사 한 코드의 두 번째 미들웨어에서는 요청, 응답 만 사용합니다. 여기에 이유가 무엇입니까? 다음 선택 사항입니까? 이 요청은 다음 미들웨어 또는이 요청에 대한 다음 경로 처리기에 계속하기위한 라우팅을 할 때Node.js Express 미들웨어 기능없이 다음

var express = require("express"); 
var http = require("http"); 

var app = express(); 

app.use(function(request, response, next) { 
    console.log("In comes a " + request.method + " to " + request.url); 
    next(); 
}); 

app.use(function(request, response) { 
    response.writeHead(200, { "Content-Type": "text/plain" }); 
    response.end("Hello, world!"); 
}); 

http.createServer(app).listen(3000); 

답변

2

express.js에는 기본 핸들러가 4 가지 있습니다.

  • 2 - REQ, 고해상도, 다음
  • 4 - - ERR, REQ, 입술, 다음

당신은 2 인자가있는 경우는, 항상 할당합니다 표현 REQ는

  • 3 입술 당신이 무엇이라고 부르더라도 req와 res. 익스프레스 공동체에서 널리 사용되는 더 깨끗하고 읽기 쉽고 이해할 수있는 코드를 만드는 호출 규칙입니다.

  • 2

    next()가 호출됩니다. 주어진 요청을 검토 할 수있는 하나 이상의 미들웨어가있는 것이 일반적입니다. 따라서 응답을 보내지 않았고이 요청에 대해 정상적인 라우팅을 계속하려면 처리를 완료했을 때 next()으로 전화를 걸어 라우팅을 원할 때 잇다.

    이미 응답을 보내고 있으므로 라우팅을 계속하고 싶지 않은 경우 next()으로 전화하지 마십시오.

    매개 변수 next을 선언하는지 여부는 사용자에게 달려 있습니다. 호출하지 않으려는 경우 매개 변수로 선언 할 필요가 없습니다 (여전히 전달되지만 사용하지 않으려는 경우 매개 변수를 선언 할 필요가 없습니다).