2017-01-14 1 views
0

프로젝트의 routes 폴더에 apis를 만들고 있는데, 유효성 검사를 수행하는 클래스를 만들고 모든 경로에서 사용하는 방법은 무엇입니까? 예를 들어 경로가 새 사용자를 생성하고 내 유효성 검사 클래스에서 오류가 아닌 특정 객체가 비어 있지 않은지 확인하려는 경우 null이 아니라 정의되지 않았습니다.노드 js가 하나의 클래스를 생성하고 다른 경로에서 사용합니다.

예를 들어 비어 있지 않은지 확인하려면 클래스를 사용하십시오. 이미 익스프레스 유효성 검사기 (req.assert)를 사용하고 있지만 클래스로 변경하라는 요청을 받았습니다.

가 어떻게 내 경로에서 다른 클래스를 사용 할 방법 당신이 Express를 사용하는 경우 응용 프로그램

router.post('/add',function(req,res){ 
    var record = req.body.record, 
    first_name = record.first_name, 
    middle_name = record.middle_name, 
    last_name = record.last_name, 
    phone_number = record.phone_number; 


    }) 
+0

[몽구스] (http://mongoosejs.com/)를 사용합니까? – Karlen

+0

mongoose와 mongodb를 사용하고 있습니다. – motchezz

답변

0

를 계속하기 전에 데이터를 가져 노드를 강요하는 걸까, 당신은 use에게 다음을 미들웨어를 만들 수 있습니다 앱에 모든 경로에 적용하려면 다음을 입력하십시오.

미들웨어는 다음 시그니처가있는 함수입니다. function(req, res, next){}. 귀하의 경우에는, 당신은 할 수 :

function myMiddleware(req, res, next) { 
    if (req.body.record) 
    next() 
    else 
    res.status(400).json({message: "No record in your body"}); 
} 

익스프레스가 제공하는 next 기능은, 당신이 '계속'다음 미들웨어 또는 경로로 이동 할 수 있습니다. 정보의 흐름은 다음과 같습니다

request recieved by the route --> middleware1 --> middleware2 --> ... --> response 

모든 경로는 우리의 '마지막 길', 응답을 반환합니다 하나가 될 것입니다 res.json 또는 res.send와 미들웨어와 하나에 의해 구성되는 것을 말한다.

: 당신은 당신의 노선에 사용하려는 경우,

app.use(myMiddleware) 

을 또는 : 당신은 모든 노선이 미들웨어를 적용 할 경우 경우

그래서 .., 당신은 할 수있다 01이 도움이

var router = express.Router() 
router.use(myMiddleware) 
app.use('/record', router) 

희망 : 당신이 특정 접두어로 모든 경로에 적용 할 경우

router.post('/add', myMiddleware, function(req,res){ ... }); 

, 다음을 수행하십시오건배

+0

감사합니다. – motchezz

관련 문제