问题是,当我在一个单独的项目中进行操作时,这些组合实际上对我有用,这是一个简单的项目,没有其他组件,只有app.component。 但是,将它包含在我正在研究的网站项目中时,它并没有加起来。
主要地,引起我注意的是,当我在我的contacto.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')
});
这是nodemailer位:
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));
});
}
答案 0 :(得分:0)
它是nodejs中非常常见的功能。您可以在下面的链接中找到有效的演示: