[javascript] 자바 스크립트 node.js next ()

nextnode.js에서 많은 사용법 을 봅니다.

그것은 어디에서 왔습니까? 무엇을합니까? 클라이언트 쪽에서 사용할 수 있습니까?

예를 들어 여기에 사용되어 죄송합니다 :
http://dailyjs.com/2010/12/06/node-tutorial-5/

loadUser 함수를 찾으십시오.



답변

이것은 Node.js 제어 흐름 코드에서 변수 명명 규칙으로 보이며, 실행할 다음 함수에 대한 참조가 콜백에 제공되어 완료되면 시작됩니다.

예를 들어 다음 코드 샘플을 참조하십시오.

게시 한 예를 살펴 보겠습니다.

function loadUser(req, res, next) {
  if (req.session.user_id) {
    User.findById(req.session.user_id, function(user) {
      if (user) {
        req.currentUser = user;
        return next();
      } else {
        res.redirect('/sessions/new');
      }
    });
  } else {
    res.redirect('/sessions/new');
  }
}

app.get('/documents.:format?', loadUser, function(req, res) {
  // ...
});

loadUser함수는 세 번째 인수에서 name으로 바인딩 된 함수를 예상합니다 next. 이것은 정상적인 기능 매개 변수입니다. 수행 할 다음 조치에 대한 참조를 보유하며 한 번 loadUser완료 되면 호출 됩니다 (사용자를 찾을 수없는 경우 제외).

next이 예제 에서는 이름 에 특별한 것이 없습니다 . 우리는 무엇이든 지명 할 수있었습니다.


답변

스캔 디렉토리-> 파일 데이터 읽기-> 데이터로 무언가를 수행하는 등 일련의 동작을 수행해야하는 상황에서 콜백을 전달할 때 사용되는 명명 규칙입니다. 콜백을 깊게 중첩하는 것이 좋습니다. Tim Caswell의 HowToNode 블로그 에 대한 다음 기사의 첫 세 섹션은 이에 대한 개요를 제공합니다.

http://howtonode.org/control-flow

해당 게시물의 두 번째 부분에 있는 순차 작업 섹션 도 참조하십시오 .

http://howtonode.org/control-flow-part-ii


답변

기본적으로 코드의 특정 부분이 실행되고 완료된 후 express.js가 사용 하는 콜백과 같습니다. 코드의 일부가 수행되고 다음에 수행하려는 작업을 확인하는 데 항상 사용할 수 있지만 항상주의해야합니다. res.sendREST 블록 에서 하나 를 수행하십시오 …

간단한 next()예제 로 다음과 같은 작업을 수행 할 수 있습니다 .

app.get("/", (req, res, next) => {
  console.log("req:", req, "res:", res);
  res.send(["data": "whatever"]);
  next();
},(req, res) =>
  console.log("it's all done!");
);

앱에 미들웨어를 갖고 싶을 때도 매우 유용합니다 …

미들웨어 함수를로드하려면 미들웨어 함수를 지정하여 app.use ()를 호출하십시오. 예를 들어 다음 코드는 루트 경로 (/) 로의 경로 이전에 myLogger 미들웨어 함수를로드합니다.

var express = require('express');
var app = express();

var myLogger = function (req, res, next) {
  console.log('LOGGED');
  next();
}

app.use(myLogger);

app.get('/', function (req, res) {
  res.send('Hello World!');
})

app.listen(3000);


답변