programing

javascript node.js next()

mailnote 2023. 9. 8. 21:40
반응형

javascript node.js next()

많이 쓰임새가 있네요.nextnode.js에 있습니다.

뭐지, 어디서 온 거지?이게 무슨 역할을 하죠?고객측에서 사용해도 됩니까?

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

loadUser 함수를 찾습니다.

이것은 Node.js control-flow 코드의 변수 명명 규칙으로 보이는데, 실행할 다음 함수에 대한 참조는 실행이 완료되면 이 함수를 킥오프하기 위한 콜백에 부여됩니다.

예를 들어 코드 샘플은 다음과 같습니다.

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

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함수는 이름에 바인딩된 세 번째 인수에 함수를 기대합니다.next. 정상 함수 파라미터입니다.수행할 다음 작업에 대한 참조를 보유하고 있으며 한 번 호출됩니다.loadUser를 수행합니다(사용자를 찾을 수 없는 경우 제외).

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

작업을 연속적으로 실행해야 하는 상황(예: 검색 디렉토리 -> 파일 데이터 읽기 -> 데이터로 작업)에서 콜백을 전달할 때 사용되는 명명 규칙입니다.이는 콜백을 깊이 중첩하는 것보다 우선합니다.Tim Caswell의 HowToNode 블로그에 있는 다음 기사의 첫 세 섹션은 이 내용을 잘 보여줍니다.

http://howtonode.org/control-flow

또한 해당 게시물의 두 번째 부분의 순차 작업 섹션을 참조하십시오.

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

이것은 기본적으로 코드의 특정 부분이 실행되고 완료된 후 express.js 사용하는 콜백과 같습니다. 코드의 일부가 실행되고 다음 작업을 수행할 수 있도록 하기 위해 사용할 수 있지만 항상 주의해야 합니다.res.send당신의 각각의 휴식 구역에서...

그래서 이런 일을 간단하게 할 수 있습니다.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);

언급URL : https://stackoverflow.com/questions/5384526/javascript-node-js-next

반응형