【发布时间】:2020-08-05 21:31:17
【问题描述】:
所以我创建了一个控制器来创建用户配置文件,一切正常,它在数据库中创建它,但我无法得到任何响应......起初我以为这是我的路线,但经过一些通过在控制器中的方法早期添加测试响应进行测试,它返回正常。我不确定我错过了什么,就像我说它进入数据库一样。
这是我的 Controller.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;
};
这是我的 Route.js
app.post('/api/createMerchUser', (req, res) => {
return res.json(merchantUsersController.createMerchantUser(req, res))
})
更新:
只是为了更多的上下文。下面是我以前做的不同方式,它会很好用。它在创建对象后返回它。这样做的问题是我不能在不同的控制器中调用方法,因此我不得不使用上面的方法......
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
}
});
});
});
};
Route.js
app.route('/api/merchantUser')
.post(merchantUsers.create_merchant_user);
【问题讨论】:
-
您是否尝试过在控制器中进行控制台日志记录
merchantUser? -
是的,一切正常,对象进入数据库 - 我得到 200,所以保存功能没有问题,它是响应。
标签: node.js mongodb rest mongoose