Итак, я создал контроллер для создания профиля пользователя, все работает нормально, он создает его в базе данных, но я ничего не могу получить по ответу ... Сначала я подумал, что это мой маршрут, но после некоторого тестирование, добавив тестовый ответ в начале метода в контроллере, он возвращает нормально. Я не уверен, что мне не хватает, так как, как я уже сказал, он входит в базу данных нормально.
Вот мой контроллер. js
module.exports = function(req, res) {
var mod = {
createMerchantUser(req, res) {
var merchantDescription = 'Merchant for ' + req.body.email;
////////// If I add a test Response HERE it returns perfectly
///////// return{ message: "Testing response here..." }
// ANYTHING BELOW GETS CREATED IN DATABASE BUT DOESN'T PROVIDE A RESPONSE
var merchant = stripe.customers.create({
email: req.body.email,
description: merchantDescription
}, function(err, customer) {
var new_merchant_user = new MerchantUser({
email: req.body.email,
password: req.body.password,
accountConfirmed: false,
stripeID: customer.id
});
new_merchant_user.save(function(err, merchantUser) {
if (err) {
if (err.name === 'MongoError' && err.code === 11000) {
// Duplicate username
return res.status(500).send({ success: false, message: 'An account with this email already exists!' });
}
}
res.json({
data: {
merchantUser
}
});
});
});
}
}
return mod;
};
Вот мой маршрут. js
app.post('/api/createMerchUser', (req, res) => {
return res.json(merchantUsersController.createMerchantUser(req, res))
})
ОБНОВЛЕНИЕ:
Просто для большего контекста. Ниже приведен другой способ, которым я привык это делать, который работал бы идеально. Он вернул объект после его создания. Проблема с этим способом заключается в том, что я не могу вызывать методы в разных контроллерах, поэтому мне пришлось go с помощью метода выше ...
Controller. js
exports.create_merchant_user = function(req, res) {
var merchantDescription = 'Merchant for ' + req.body.email;
var merchant = stripe.customers.create({
email: req.body.email,
description: merchantDescription
}, function(err, customer) {
var new_merchant_user = new MerchantUser({
email: req.body.email,
password: req.body.password,
accountConfirmed: false,
stripeID: customer.id
});
new_merchant_user.save(function(err, merchantUser) {
if (err) {
if (err.name === 'MongoError' && err.code === 11000) {
// Duplicate username
return res.status(500).send({ success: false, message: 'An account with this email already exists!' });
}
}
res.json({
data: {
merchantUser
}
});
});
});
};
Маршрут. js
app.route('/api/merchantUser')
.post(merchantUsers.create_merchant_user);