2017-03-28 3 views
1

사용자 정의 미들웨어의 작은 조각이 있지만 text/html이 아닌 응답 형식의 컨텐츠 유형을 얻지 못하는 것 같습니다.ExpressJS 4.15.2 사용자 정의 미들웨어 세트 내용 유형

getValidator: function(req, res, next) { 
    res.setHeader('Content-Type', 'application/json'); 

    if (!req.query.Name) { next('please provide a Name'); } 

    return next(); 
    } 

다른 맞춤형 미들웨어가없는 초소형 앱입니다.

감사합니다.

답변

1

나는 스스로 대답 할 것입니다. :) 제가 틀렸다면 저를 제발 수정하십시오. 그러나 이것이 작동하는 것처럼 보입니다.

getValidator: function(req, res, next) { 

    if (!req.query.Name) { return res.status(500).json({ error: 'please provide a Name' }); } 

    return next(); 
    } 

"반환"을 사용하지 않으면 체인을 계속 통과합니다. next ('ANYTHING')를 사용하면 ExpressJS의 기본 404 핸들러를 누르고 text/html을 반환하려고 시도합니다. 이 사람이 도움이되기를 바랍니다! (또는 다음번에 내가 망쳐 버린다.)

+1

'return next ('ANYTHING')'을 사용할 수도있다. 주요 문제는 미들웨어의 나머지 부분이 그로부터 돌아와서 실행되는 것을 막는 것입니다. – robertklep

+0

굉장! 고마운 로버트 클렙! – coreyperkins

관련 문제