2013-04-05 4 views
0

mojito mvc 프레임 워크에서 nodejs를 사용하고 있습니다.미들웨어에서 Y.mojito.models를 어떻게 사용할 수 있습니까?

미들웨어의 일부 전역 변수에 액세스 할 수 있습니까? 미들웨어에서 Y.mojito.models를 어떻게 사용할 수 있습니까?

// ./middleware/mymiddleware.js 
module.exports = function (req, res, next) { 

    // How to use Y? 
    //Y.log('fails'); 
    //Y.mojito.models['MyModel'].fetch(function(err, data) { 
    // next(); 
    //}); 
}; 

답변

2

강력히 권장하지 않습니다. 이들은 신속한 미들웨어이며, 빠른 작업을 수행하기도하고 때로는 비동기 작업을 수행하는 것으로 가정되지만 일반적으로 요청이 mojito 디스패처 엔진에 의해 처리되도록되어있는 경우 미들웨어의 런타임 구성 요소에 액세스해서는 안됩니다.

이전에 말했듯이, 서버 측에서 모든 YUI 모듈을 보유하고있는 글로벌 Y에 대한 액세스 권한을 부여하는 내부 API (다시 사용하지 않는 것이 좋습니다)가 있습니다. 이런 식으로 뭔가 : 그에서 제외

module.exports = function (config) { 
    // then `config.Y.mojito.models['MyModel'].fetch()` is available here 
    return function (req, res, next) { 
     next(); 
    } 
}; 

, 당신이 찾고있는 것은 모델을 공유하거나, 글로벌 모델을 노출하는 방법입니다, 당신은 모히토 - 모델 - 부가 기능, expose 방법에 보일 것입니다.

다시 config.Y 것은 사적이며 언제든지 변경 될 수 있습니다.

갱신 : 모히토 거기 미들웨어의 두 가지 유형, 전통 express 미들웨어 및 mojito-로 시작되어야 할 것이다 모 히 토 미들웨어가 있으며, 이러한 config를 수신하고를 반환하는 함수를 노출해야 하나 전환 형 express 미들웨어. 접두사가 없으면 준비없이 요청 당 호출됩니다.

+0

나는 그것을 시도했다. 그러나 반환 된 함수는 호출되지 않습니다. "module.exports"함수는 미들웨어로 사용됩니다. 그것을 다음과 같이 구성했습니다 : http://developer.yahoo.com/cocktails/mojito/docs/topics/mojito_extensions.html#middleware – koalabruder

+0

"{app-dir}/middleware"폴더를 사용하면 예제가 제대로 작동하는 것 같습니다. 파일 앞에 "mojito-"를 붙입니다. – koalabruder

관련 문제