Я разработал REST API с использованием узла js и express.Я использую почтовую программу для отправки почты, когда пользователь регистрируется.У меня есть службы аутентификации (метод POST), которые читают код языка, передаваемый приложением, и отправляют письмо с переведенным текстом и токеном для проверки регистрации.Ссылка с токеном - это запрос GET, который отправляет другую почту.Как я могу сказать методу GET, какой код языка используется, чтобы можно было отправить письмо с переводом?
Здравствуйте, я внедрил этот код для токена проверки:
// Verification token
router.get('/verification/:language/:token/', function(req, res, next) {
const language = req.params.language;
console.log(language);
// Check for validation errors
var errors = req.validationErrors();
if (errors) return res.status(400).send(errors);
// Find a matching token
Token.findOne({ token: req.params.token }, function (err, token) {
//if (!token) return res.status(400).send({status: 'ko',error: {type: 'not-verified', msg: 'We were unable to find a valid token. Your token my have expired.'}} );
if (!token) return res.redirect('https://localhost/expiredtoken');
// If we found a token, find a matching user
User.findOne({ _id: token._userId }, function (err, user) {
if (!user) return res.status(400).send({ msg: 'We were unable to find a user for this token.' });
//if (user.isVerified) return res.status(400).send({status: 'ko',error:{type: 'already-verified', msg: 'This user has already been verified.'}});
if (user.isVerified) return res.redirect('https://localhost/userverified');
// Verify and save the user
user.isVerified = true;
user.save(function (err) {
if (err) { return res.status(500).send({ msg: err.message }); }
//res.status(200).send({status: 'ok', data: { msg: 'The account has been verified. Please log in.'}});
res.redirect('https://localhost/login');
//
var text_email;
if (language == 'en') {
text_email = 'Hi'
}
if (language == 'it') {
text_email = 'Ciao'
}
var client = nodemailer.createTransport(sgTransport(options));
var email = {
from: 'noreply@test.com',
to: user.email,
subject: 'Registration successfully confirmed',
text: text_email
};
client.sendMail(email, function(err, json){
if (err){
return res.status(500).send({ msg: err.message });
}
else {
res.status(200).send({status: 'ok', data: { msg: 'A verification email has been sent to ' + user.email + '.'}} )
}
});
//
});
});
});
});
Проверка работает, а такжеотправлять почту, но происходит сбой приложения с этой ошибкой: Ошибка [ERR_HTTP_HEADERS_SENT]: Невозможно установить заголовки после их отправки клиенту
Любая помощь, пожалуйста ??