2016-06-28 4 views
7

나는 약속의 마지막 결과를 잡는다를 포맷하고 데이터를 출력하는 래퍼가 : 하나 개의보기에서그냥 성취하는 빈 약속을 만드시겠습니까?

req.resolve = (promise) => { 
    return promise.then(() => { 
      res.json(req.user); 
     }).catch(Sequelize.ValidationError, err => { 
     // respond with validation errors 
     return res.status(422).send(err.errors); 
    }).catch(err => { 
     // every other error 
     return res.status(400).send({ message: err.message }); 
    }); 
}; 

을, 나는 약속이없는, 일어나는 모든 인 인증 기능이 트리거는 req.user를 추가하고 done()을 트리거합니다.

나는이 같은 약속을 추가하려고했지만 해결되지 않습니다.

app.get('/user/me', auth, 
    (req, res, next) => { 
     req.resolve(new Promise()); 
    }); 
+0

매개 변수가 전달되지 않고'req.resolve()'가 반환합니까? – guest271314

+0

아무것도 반환하지 않으며 브라우저에 데이터를 출력합니다. 그것은 express.js에 의해 사용되는 req-object의 데이터에 접근합니다. – Himmators

답변

10

Promise 생성자에는 매개 변수로 실행자 함수가 필요합니다. 대체 할 Promise.resolve()에 대한 new Promise()

+0

이 작동하지만 경고 메시지가 나타납니다 : 경고 : 핸들러에서 약속이 생성되었지만 반환되지 않았습니다 – Himmators

+1

'return 'return res.json (req.user);에있는 문장'. 중첩 된 .catch() 함수의 목적은 무엇입니까? – guest271314

관련 문제