2016-06-28 36 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 }); 
    }); 
}; 

有一种观点认为,我没有答应,所发生的一切是在auth功能触发器添加req.user并触发done()

我试着添加这样的承诺,但没有得到解决。

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

什么是'req.resolve()'返回时没有传入参数? – guest271314

+0

它不返回任何内容,它将数据输出到浏览器。它有权访问req对象中由express.js – Himmators

回答

10

Promise构造函数需要执行程序函数作为参数。替代Promise.resolve()替换为new Promise()

+0

使用的一堆数据,但是我得到以下警告:警告:承诺已在处理程序中创建,但未从其返回 – Himmators

+1

尝试包括'return '在'return res.json(req.user)'声明''。嵌套'.catch()'函数的目的是什么? – guest271314