Получение ошибки при вызове функции в реакции - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь отправить электронное письмо, когда пользователь заполняет контактную форму, но я получаю ошибки при обращении к файлу javascript из моего компонента. Все ошибки находятся в выключенном формате:

"Не удалось создать пакет разработки JavaScript Не удалось разрешить 'child_process' в .... Файл: node_modules \ nodemailer \ lib \ sendmail-transport \ index. js ""

Я попытался переместить файлы. Переход с JS на TS и все та же ошибка. Мои знания о реакции ограничены, поэтому, возможно, я делаю что-то, что не разрешен для компонента?

Мой компонент контактной формы:

import React from "react"
import style from './contact-form.module.css';
import { SendEmails } from '../send';
export class ContactForm extends React.PureComponent {
        handleSubmit(e){
        e.preventDefault();
        const name = this.state.Name;
        const email = this.state.Email;
        const message = this.state.Message;
        const company = this.state.Company
      
         const  data = {
                name: name,   
                email: email,  
                messsage: message,
                company: company
            }
          SendEmails(data);

    }}

И мой отправить. js файл

var nodemailer = require('nodemailer');
const creds = require('../config/config');

var transport = {
  host: 'smtp.gmail.com',
  port: 587,
  secure: false,
  auth: {
    user: creds.USER,
    pass: creds.PASS
  }
}

var transporter = nodemailer.createTransport(transport)

transporter.verify((error, success) => {
  if (error) {
    console.log(error);
  } else {
    console.log('Server is ready to take messages');
  }
});

function sendEmail(req){
    var name = req.body.name
    var email = req.body.email
    var message = req.body.message
    var company = req.body.company
    var content = `name: ${name} \n company: ${company} \n  email: ${email} \n message: ${message} `
  
    var mail = {
      from: name,
      to: creds.USER,  //Change to email address that you want to receive messages on
      subject: 'New Message from Contact Form',
      text: content
    }
  
    transporter.sendMail(mail, (err, data) => {
      if (err) {     
        return 'fail'
        
      } else {
      return 'Succeed'
      }

    })
  }
  export const SendEmails = (n)=>{
    sendEmail(n);
}
...