Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

281
Views
React node js formulario de contacto error 404 en producción

Creé un formulario de contacto para mi aplicación de reacción que funciona en localhost pero una vez que lo implemento ya no funciona. He estado probando diferentes URL para la publicación, con o sin puerto, pero cada vez arroja un error.

Tal como está ahora, obtengo esto en la consola:

Error: la solicitud falló con el código de estado 404 en e.exports (createError.js:16) en e.exports (settle.js:17) en XMLHttpRequest.x (xhr.js:66)

Así envío el correo:

 axios({ method: 'POST', url: 'https://url.com/send', data: formData }).then((response) => { if (response.data.status === 'success') { toast.success( <div> Success </div> ); resetForm(); } else if (response.data.status === 'fail') { toast.error( <div> Error </div> ); } });

Este es mi servidor:

 var express = require('express'); var cors = require('cors'); var router = express.Router(); var nodemailer = require('nodemailer'); app.use(express.static('build')); app.get('*', (req, res) => { req.sendFile(path.resolve(__dirname, 'build', 'index.html')); }); var transport = { service: 'gmail', auth: { user: 'my_email@gmail.com', pass: 'my_password' } }; var transporter = nodemailer.createTransport(transport); transporter.verify((error, success) => { if (error) { console.log(error); } else { console.log('Server is ready to take messages'); } }); router.post('/send', (req, res, next) => { var firstName = req.body.firstName; var lastName = req.body.lastName; var email = req.body.email; var phoneNumber = req.body.phoneNumber; var subject = req.body.subject; var message = req.body.message; var dataConsent = req.body.dataConsent; var content = `Name:\n${ firstName + ' ' + lastName }\n\n\nEmail:\n${email}\n\n\nPhone Number:\n${phoneNumber}\n\n\nSubject:\n${subject}\n\n\nMessage:\n${message}\n\n\nConsent:\n${dataConsent}`; var mail = { from: email, to: 'test@gmail.com', subject: subject, text: content }; transporter.sendMail(mail, (err, data) => { if (err) { res.json({ status: 'fail' }); } else { res.json({ status: 'success' }); } }); }); const app = express(); app.use(cors()); app.use(express.json()); app.use('/', router); app.listen(3002);

Y en package.json ejecuto este script al inicio:

 "start": "node src/server.js",
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

var express = require('express'); const app = express(); // app comes after express require var cors = require('cors'); var router = express.Router(); var nodemailer = require('nodemailer'); app.use(express.static('build')); app.get('*', (req, res) => { req.sendFile(path.resolve(__dirname, 'build', 'index.html')); }); var transport = { service: 'gmail', auth: { user: 'my_email@gmail.com', pass: 'my_password', }, }; var transporter = nodemailer.createTransport(transport); transporter.verify((error, success) => { if (error) { console.log(error.message); } else { console.log('Server is ready to take messages'); } }); router.post('/contact',async (req, res, next) => { var firstName = req.body.firstName; var lastName = req.body.lastName; var email = req.body.email; var phoneNumber = req.body.phoneNumber; var subject = req.body.subject; var message = req.body.message; var dataConsent = req.body.dataConsent; var content = `Name:\n${ firstName + ' ' + lastName }\n\n\nEmail:\n${email}\n\n\nPhone Number:\n${phoneNumber}\n\n\nSubject:\n${subject}\n\n\nMessage:\n${message}\n\n\nConsent:\n${dataConsent}`; var mail = { from: email, to: 'test@gmail.com', subject: subject, text: content, }; const info = await transporter.sendMail(mail); return res.send({info}); }); // const app = express(); app is executed in wrong place app.use(cors()); app.use(express.json()); app.use('/', router); app.listen(3002);

Ha cometido errores este archivo. const app = express(); viene después de var express = require('express');

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!