1
자바 스크립트에 새로운 기능이 추가되었습니다. 노드 JS/Restify에 대한 비동기 모듈의 waterfall 메서드에 따라 일련의 함수를 실행하려고합니다. 이 방법의 가장 큰 장점은 현재 콜백의 "결과"를 다음 콜백으로 전달할 수 있다는 것입니다. 따라서 "폭포"를 깨고 다음 미들웨어를 실행할 가능성이 있습니다.async.waterfall로 스코프를 분실했습니다.
문서에 설명 된대로 인수는 함수 배열과 마지막 미들웨어입니다.
그래서 설정 내 기능 아래의 코드에 따라와
var fn1 = function(callback){
console.log(req.params.user_id);
callback(null, req.params.user_id);
};
var fn2 = function(user_id, callback){
console.log(user_id);
callback();
}
server.get('/:user_id',
function(req, res, next){
async.waterfall([fn1, fn2],
function(err, result){
next();
})
},
...(next middleware)
)
를 호출하고 REQ 객체를 정의하지 않는 한 내가 예상 결과를 얻고 있지 않다. 그러나이 작업을 수행 할 때 :
server.get('/:user_id',
function(req, res, next){
async.waterfall([
function(callback){
console.log(req.params.user_id);
callback(null, req.params.user_id);
},
function(user_id, callback){
console.log(user_id);
callback();
}
],
function(err, result){next()});
},
...(next middleware)
)
결과가 예상되고 req 개체는 기능 1 (fn1)의 범위에서 잘 정의되어 있습니다.
그래서 나는 아주 기본적인 뭔가를 놓친 거지하지만
고맙습니다! 나는이 사실을 몰랐다. – nullpointer