Почему я получаю эту ошибку 404 с помощью axios.post ()? Использование Express / Node? - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь создать контактную форму с Nodemailer (в первый раз), и я сталкиваюсь с ошибкой 404.

Надеюсь, это не слишком неприятный объем кода, которым я могу поделиться,постараюсь урезать его как можно больше.

Server.js

 const transporter = nodemailer.createTransport({
    host: "smtp.ethereal.email",
    port: 587,
    secure: false, 
    auth: {
        user: creds.USER, // Generated by ethereal
        pass: creds.PASS // Generated by ethereal
    }
});


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

router.post("/send", (req, res, next) => {
    let name = req.body.name
    let email = req.body.email
    let message = req.body.message
    let content = `name: ${name} \n email: ${email} \n message: ${message}`


    let mail = {
        from: name,
        to: "jlbroughton88@gmail.com",
        subject: "Test from contact form",
        text: content
    }

    transporter.sendMail(mail, (err, data) => {
        if (err) {
            res.json({
                msg: "Message failed"
            })
        } else {
            res.json({
                msg: "Message succeeded!"
            })
        }
    })
})

ContactForm.js (React Component)

Я обрезал часть JSX, триггер отправки работает нормально. Он ломается, как только достигает метода axios.post ().

    handleSubmit(e) {
    e.preventDefault();
    const name = document.getElementById('name').value;
    const email = document.getElementById('email').value;
    const message = document.getElementById('message').value;
    axios.post("http://localhost:3002/send", {
        name,
        email,
        message
    })
    .then((response) => {
        // console.log(response)
        if (response.data.msg === 'success') {
            alert("Message Sent.");
            this.resetForm()
        } else if (response.data.msg === 'fail') {
            alert("Message failed to send.")
        }
    })
}

resetForm() {
    document.getElementById('contact-form').reset();
}
...