Node.js 将承诺与猫鼬链接(MPROMIES)

Node.js 将承诺与猫鼬链接(MPROMIES),node.js,validation,mongoose,promise,chain,Node.js,Validation,Mongoose,Promise,Chain,我正在寻找关于如何使用nodejs/mongoose(mPromise)链接“fin或create”功能承诺的建议 我目前已尝试: var findExistingUsername=函数(值){ log('existusername'); 返回mongoose.models[“User”].findOne({username:value}) .lean() .exec(); }; var findExistingEmail=函数(值){ log('existusername'); 返回mong

我正在寻找关于如何使用nodejs/mongoose(mPromise)链接“fin或create”功能承诺的建议

我目前已尝试:

var findExistingUsername=函数(值){
log('existusername');
返回mongoose.models[“User”].findOne({username:value})
.lean()
.exec();
};
var findExistingEmail=函数(值){
log('existusername');
返回mongoose.models[“User”].findOne({email:value})
.lean()
.exec();
};
var validateEmail=函数(值){
log('existusername');
var emailRegex=/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
log('Email valido?:'+emailRegex.test(Email));
返回emailRegex.test(电子邮件);
};
var addUser=函数(数据){
log('existusername');
返回mongoose.models[“User”]。创建(数据);
};
UserSchema.methods={
ValidateAndUser:功能(请求、恢复){
返回findExistingUsername(this.username)
.then(功能(现有用户){
如果(现有用户)
扔出“你的名字是什么?”
})
.chain(findexsistingemail(this.email))
.然后(功能(现有电子邮件){
如果(现有电子邮件)
扔出“电子竞技”这个词
})
.chain(addUser(this))
.然后(函数(){
log('user creado con exito');
})
.onResolve(函数(){
console.log('success');
res.status(200).json({
有效负载:“用户”,
信息:“Cuenta creada conéxito”});
})
.onReject(函数(错误){
console.log('err');
res.status(400).json({
有效载荷:err.code,
消息:err});
});

}};不要抛出字符串。同时,您调用的是
chain
,而不是
then
。同样,您调用的是
then
,其参数是promise,而不是函数。