У меня есть простая форма в React, которая отправляет запрос на публикацию в / api / submit, затем мой экспресс-сервер обрабатывает запрос на публикацию согласно моему фрагменту кода ниже, однако я получаю сообщение об ошибке: http://localhost:8000/api/submit 404(Не обнаружена).Я чувствую, что пропустил что-то фундаментальное.Любое предложение высоко ценится.
У меня есть мой прокси вебпак, например:
devServer: {
contentBase: path.resolve('src'),
hot: true,
open: true,
port: 8000,
watchContentBase: true,
historyApiFallback: true,
proxy: {
'/api': {
target: 'http://localhost:4000',
secure: false
}
}
}
На стороне клиента (форма):
formSubmit(e){
e.preventDefault()
axios.post('/api/submit', this.state.data)
.then(() => {
this.setState({ sent: true }, this.resetForm())
})
.catch(() => {
console.log('Message not sent')
})
}
На стороне сервера:
app.post('/api/submit', (req, res) => {
const data = req.body
console.log(req.body)
const smtpTransport = nodemailer.createTransport({
service: 'gmail',
port: 25,
auth: {
user: process.env.EMAIL,
pass: process.env.PASS
}
})
const mailOptions = {
from: data.email,
to: process.env.EMAIL,
subject: 'Quote & Services',
html: `<p>${data.name}</p>
<p>${data.email}</p>
<p>${data.message}</p>`
}
smtpTransport.sendMail(mailOptions,
(error, res) => {
if(error) {
res.send(error)
}else {
res.send('Success')
}
smtpTransport.close()
})
})
app.use(express.static(`${__dirname}/dist`))
app.get('/*', (req, res) => res.sendFile(`${__dirname}/dist/index.html`))
app.listen(process.env.PORT, () => console.log(`Express is serving the dist folder on port ${process.env.PORT}`))