Используя nuxt
и для http-запроса axios
, вот конфигурация:
nuxt.config.js
axios: {
proxy: true,
https: true,
prefix: '/api'
}
.vue
this.$axios.$post('/mail', {
...
}
После отправки формы URL запроса будет:
http://localhost:3000/api/mail
Но:
POST http://localhost:3000/api/mail 404(Не найдено)
В моем проекте:
/api
- index.js
- /routes
-- /mail.js
index.js:
const express = require('express')
var mail = require('./routes/mail.js')
mail.JS
var router = express.Router()
router.post('/', function(req, res, next) {
var mailInfo = req.body
var mailDetails = getMailDetails(mailInfo.type, mailInfo.body)
var mailOptions = {
priority: 'high',
from: process.env.SENDGRID_FROM || 'contact@test.com',
to: mailInfo.to || mailDetails.to,
subject: mailDetails.subject,
html: mailDetails.msg
}
transporter.sendMail(mailOptions, function(error, info) {
if (error) {
console.log(error)
res.status(404).json(error)
} else {
// console.log('Email sent: ' + info.response);
res.status(200).json({
message: 'email sent successfully'
})
}
})
})
module.exports = router
Есть идеи?..