ich Kette versucht bin ES6 verspricht mit Mongoose 4.5.4Chaining ES6 Promises in Mongoose mit Typoskript
public static signup(req: express.Request, res: express.Response) {
UserModel.findOne({ email: req.body.email }).exec()
.then(existingUser => {
if(existingUser) {
return res.send({ message: 'Email is in use' });
}
return UserModel.create({
firstName: req.body.firstName,
lastName: req.body.lastName,
email: req.body.email,
password: req.body.password
});
})
.then(user => {
return res.send({ token: AuthUtils.createJWT(user)});
})
.catch(err => {
console.log(err);
});
}
jedoch Typoskript den folgenden Fehler wirft, wenn ich zu return UserModel.create(...)
versuchen:
Argument of type '(existingUser: IUser & _Model<IUser> & EventEmitter) => Response | MongoosePromise<IUser & _Model...' is not assignable to parameter of type '(...args: (IUser & _Model<IUser> & EventEmitter)[]) => void | (IUser & _Model<IUser> & EventEmitt...'. Type 'Response | MongoosePromise<IUser & _Model<IUser> & EventEmitter>' is not assignable to type 'void | (IUser & _Model<IUser> & EventEmitter) | PromiseLike<IUser & _Model<IUser> & EventEmitter>'. Type 'Response' is not assignable to type 'void | (IUser & _Model<IUser> & EventEmitter) | PromiseLike<IUser & _Model<IUser> & EventEmitter>'. Type 'Response' is not assignable to type 'PromiseLike<IUser & _Model<IUser> & EventEmitter>'. Property 'then' is missing in type 'Response'.
.create()
gibt ein Versprechen, also kann ich nicht sehen, wie das ein Problem wäre.
Jede Hilfe wäre willkommen.
'.Create()' ein Versprechen gibt, aber Sie sind auch 'Rückkehr res.send (...' in einem anderen Zweig Aufruf entweder so 'user' im Finale könnte dann sein. – JohnnyHK
Ah, natürlich. Haben Sie irgendwelche Vorschläge für die effektivste Abhilfe? – Fedoranimus