Почему я получаю эти 500 (Внутренняя ошибка сервера) в развернутом Heroku приложении React.js / Node.js / Express. js, хотя все работает? - PullRequest
0 голосов
/ 10 марта 2020

У меня развернуто приложение, и у меня возникла проблема с моей контактной формой. Это приложение React. js с узлом, express и серверной частью mongoDB. Он развернут на Heroku.

Прямо сейчас, когда пользователь вводит свою информацию в контактную форму, он: 1. запускает API.saveLead(), который запускает fetch(), попадает на маршрут contact/lead. Данные сохраняются в базе данных. 2. Затем вызывается API.sendMail(), который запускает маршрут fetch() до contact/mail. Данные упакованы и соответствующим образом отправлены на нужный адрес электронной почты с помощью пакета nodemailer.

Хотя все работает правильно, я регистрирую 500 (Внутренняя ошибка сервера), и я не могу понять, почему. Это ошибка:

API.js:29 POST https://www.agavepv.com/contact/mail 500 (Internal Server Error)
sendMail @ API.js:29
(anonymous) @ index.js:38
Promise.then (async)
t.handleFormSubmit @ index.js:36
(anonymous) @ react-dom.production.min.js:80
w @ react-dom.production.min.js:100
(anonymous) @ react-dom.production.min.js:104
T @ react-dom.production.min.js:124
P @ react-dom.production.min.js:153
C @ react-dom.production.min.js:142
N @ react-dom.production.min.js:166
xn @ react-dom.production.min.js:1676
ue @ react-dom.production.min.js:7257
_n @ react-dom.production.min.js:1741
Nn @ react-dom.production.min.js:1778
Pn @ react-dom.production.min.js:1753
t.unstable_runWithPriority @ scheduler.production.min.js:270
Ql @ react-dom.production.min.js:2794
ie @ react-dom.production.min.js:7242
(anonymous) @ react-dom.production.min.js:1710

Ссылку на мой gitHub можно найти здесь: https://github.com/TheGreekCuban/agavepv
Ссылку на развернутый сайт можно найти здесь: https://www.agavepv.com

ОБНОВЛЕНИЕ

module.exports = {
  create: function(req, res) {
    db.Lead
      .create(req.body)
      .then(dbModel => res.json(dbModel))
      .catch(err => res.status(422).json(err));
  },
//THE CODE BELOW IS WHERE I THE ERROR IS BEING TRIGGERED
  send: function(req) {
    db.Send(req.body)
    .then(response => console.log("Message[2]: ", response))
    .catch(err => console.log(err.response));
  }
};

ОБНОВЛЕНИЕ [2]

const nodemailer = require("nodemailer")


const Send = (request) => {

    console.log("Request2: ", request)

    const output = `
        <p>Name: ${request.Name}</p>
        <p>Phone: ${request.Phone}</p>    
        <p>Email: ${request.Email}</p>
        <p>Message:
        <br>
        ${request.Message}</p>        
    `

    // call the main function which will take care of the nodemailer.
    main(output)
}

async function main(output) {
    // create reusable transporter object using the default SMTP transport
    let transporter = nodemailer.createTransport({
        service: "Gmail",
        auth: {
            user: process.env.email, // generated ethereal user
            pass: process.env.password // generated ethereal password
        }
    });

    // send mail with defined transport object
    let info = await transporter.sendMail({
        from: '"Admin" <[TAKENOUTFOREXAMPLE]@[EXAMPLE].com>', // sender address
        to: "[TAKENOUTFOREXAMPLE]@[EXAMPLE].com", // list of receivers
        subject: "Interested in working with you!", // Subject line
        html: output // html body
    });

    // Preview only available when sending through an Ethereal account
    console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
    // Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou... 
    return console.log("Message sent: %s", info.messageId);
    // Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
}
// Export the model
module.exports = Send; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...