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
'programing' 카테고리의 다른 글
| jQuery 플러그인이 로드되었는지 확인하려면 어떻게 해야 합니까? (0) | 2023.09.08 |
|---|---|
| jQuery get the image src (0) | 2023.09.08 |
| Spring MVC @ExceptionHandler 방법에 대한 Spring MVC 시험 (0) | 2023.09.08 |
| SourceTree/git에서 상호작용(시각적)으로 충돌을 해결하는 방법 (0) | 2023.09.08 |
| MySQL/SQL은 텍스트 필드의 처음 40자를 검색합니까? (0) | 2023.09.08 |