Дело в том, что их сочетание действительно работает для меня, когда я делаю это в отдельном проекте, простом без других компонентов, только app.component.Но когда дело доходит до включения его в проект веб-сайта, над которым я работаю, он просто не складывается.
В основном, что привлекает мое внимание, так это то, что когда я использую параметр в моем контакте.component.ts, он компилируется, но весь раздел просто как бы вылетает, и веб-сайт перестает работать как следует, чего не происходит в моем другом проекте, но я не могу просто удалить его, потому что это то, что связывает все вместе.Мне также интересно, не ошибаюсь ли я с маршрутами.
Contacto.component.ts:
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormControl, Validators, FormArray } from '@angular/forms';
import { MessageService } from '../../services/message.service';
import * as _swal from 'sweetalert';
import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = _swal as any;
@Component({
selector: 'app-contacto',
templateUrl: './contacto.component.html',
styleUrls: ['./contacto.component.css']
})
export class ContactoComponent{
constructor(public _MessageService: MessageService) {
}
contactForm(form) {
this._MessageService.sendMessage(form).subscribe(() => {
swal("Formulario de contacto", "Mensaje enviado correctamente", 'success');
});
}
}
это служба message.service:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class MessageService {
constructor(private _http: HttpClient) { }
sendMessage(body) {
return this._http.post('http://localhost:3000/formulario', body); //para nodemailer. http client angular.
}
}
это бит экспресса:
const express = require('express');
const cors = require('cors');
const bodyParser = require('body-parser');
const configMensaje = require('./configMensaje');
const app = express();
app.use(bodyParser.json());
app.use(cors())
app.post('/formulario', (req, res) => {
configMensaje(req.body); //recibe los datos del form
res.status(200).send();
})
app.listen(3000, () => {
console.log('Servidor corriendo')
});
и это бит нодмаилера:
const nodemailer = require('nodemailer');
module.exports = (formulario) => {
console.log('Credentials obtained, sending message...');
// Create a SMTP transporter object
const transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
auth: {
user: 'sofiaespada20@gmail.com',
pass: 'Valentino10'
}
});
// Message object
const message = {
from: `"Sofia" <sofiaespada20@gmail.com>`,
to: `"${formulario.nombre}" <${formulario.email}>`,
subject: formulario.asunto,
html: `
<strong>Nombre:</strong> ${formulario.nombre} <br/>
<strong>Nombre:</strong> ${formulario.apellido} <br/>
<strong>E-mail:</strong> ${formulario.email} <br/>
<strong>Mensaje:</strong> ${formulario.mensaje}
`
};
transporter.sendMail(message, (err, info) => {
if (err) {
console.log('Error occurred. ' + err.message);
return process.exit(1);
}
console.log('Message sent: %s', info.messageId);
console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
});
}