Я разрабатываю регистрационную форму, используя Angular6, mongodb и nodejs. Там я написал метод записи для сохранения пользователей в mongodb, если пользователь не существует в базе данных. Когда пользователи добавляются в базу данных, пользователю следует отправить электронное письмо, а пользователь должен перенаправить в другое представление. Это представление также содержится в более раннем html-файле и отображается только при успешном результате. Если имя электронной почты уже есть в базе данных, должно появиться сообщение об ошибке. Я использовал сообщение об ошибке по умолчанию в пароле. Strategy-options.ts для сообщения об ошибке для существующих пользователей. Но когда я пытаюсь добавить нового пользователя, он не переходит к следующему представлению, и терминал показывает следующее сообщение об ошибке.
TypeError: Невозможно прочитать свойство 'send' из неопределенного
».... node_modules \ MongoDB \ Lib \ utils.js: 132"
Вот мой метод сохранения.
router.post('/signup', function(req, next) {
console.log("Came into register function.");
var newUser = new userInfo({
firstName : req.body.firstName,
lastName : req.body.lastName,
rank : req.body.lastName,
mobile : req.body.lastName,
email : req.body.email,
userName : req.body.userName,
password : req.body.password,
status : req.body.status
});
newUser.save(function (err, user,res) {
console.log("Came to the save method");
if (err){
console.log(user.email);
res.send(err);
return res;
}
else{
var transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
user: 't36@gmail.com',
pass: '12345'
}
});
var mailOptions = {
from: 'reg@demo.com',
to: newUser.email,
subject: 'Send mails',
text: 'That was easy!'
};
console.log("This is the user email"+" "+newUser.email);
transporter.sendMail(mailOptions, function(error, info){
if (error) {
console.log("Error while sending email"+" "+error);
} else {
console.log('Email sent: ' + info.response);
}
});
console.log("success");
return res.send("{success}");
}
});
});
Вот мой метод регистрации в файле register.component.ts.
register(): void {
this.errors = this.messages = [];
this.submitted = true;
this.service.register(this.strategy, this.user).subscribe((result: NbAuthResult) => {
this.submitted = false;
if (result.isSuccess()) {
this.messages = result.getMessages();
this.isShowConfirm = true;
this.isShowForm = false;
}
else {
this.errors = result.getErrors();
}
const redirect = result.getRedirect();
if (redirect) {
setTimeout(() => {
return this.router.navigateByUrl(redirect);
}, this.redirectDelay);
}
this.cd.detectChanges();
});
}
Я пробовал так много методов в интернете, чтобы решить эту проблему. Но все же не сделал.