Я пытался использовать почту. js для ответа на запрос get, и когда я перемещаю его из моего routes
файла в функцию контроллера, я знаю, что что-то упустил. Он прекрасно работает, когда я делаю запрос к
const mailgun = require('mailgun.js');
const router = express.Router();
router.get('/', (req, res) => {
const API_KEY = 'secret';
const DOMAIN = 'secretdomain';
const mg= mailgun({ apiKey: API_KEY, domain: DOMAIN });
const data = {
from: 'bob@thebuilder.com',
to: 'barney@rubble.com',
subject: 'Whats up doc',
template: "reqfeedback",
};
mg.messages().send(data, function (error, body) {
if (error) {
console.log(error);
}
console.log(body);
});
});
, но когда я пытаюсь добавить его в файл контроллера в качестве функции, я получаю необработанное обещание TypeError, говорящее mailgun is not a function
, поэтому я убедился, что оно завернуто в попробуй / поймай вот так ...
controller.js
const mongoose = require('mongoose');
const mailgun = require('mailgun.js');
const sendEmail = async(req,res,next) => {
try{
const API_KEY = 'secret';
const DOMAIN = 'secretdomain';
const mg= mailgun({ apiKey: API_KEY, domain: DOMAIN });
const data = {
from: 'bob@thebuilder.com',
to: 'barney@rubble.com',
subject: 'Whats up doc',
template: "reqfeedback",
};
await mg.messages().send(data, function (error, body) {
if (error) {
console.log(error);
}
console.log(body);
});
catch (err) {
const error = new HttpError(
'Something went wrong, could not send email.',
500
);
return next(error);
}
res.status(200).json({ message: 'email sent' });
};
exports.sendEmail = sendEmail;
и я добавлю этот маршрут: routes.js
const controllers = require('../controllers/controllers');
const router = express.Router();
const express = require('express');
router.get('/sendEmail', controllers.sendEmail);
module.exports = router;
Но когда я отправляю получить запрос Я продолжаю получать сообщение об ошибке 500: «Что-то пошло не так, не удалось запросить отзыв.»
Halp pls.