应用程序"/>
TypeError:res.status不是函数expess应用程序
我正在尝试创建一个生成折扣凭证的函数,并且由于“ TypeError:res.status在控制器上不是一个函数,而导致错误。”
这是我的折扣控制器:
function coupongenerator () {
var coupon = '';
var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
for (var i = 0; i < 10; i++) {
coupon += possible.charAt(Math.floor(Math.random() * possible.length));
}
return coupon;
}
exports.createCoupon = () => {
let isExistDiscount = false;
do {
let myDiscountCode = coupongenerator()
let newDiscountCode = new Coupon({
code: myDiscountCode,
isPercent: true,
amount:30 ,
expireDate: '',
isActive: true
});
newDiscountCode.save(function (err,res) {
if (err) {
if (err.name === 'MongoError' && err.code === 11000) {
// Duplicate code detected
isExistDiscount = true;
}
}
res.status(200).send('yes');
});
} while (isExistDiscount);
}
回答如下:您尝试访问的“ res”对象实际上是将Mongo文档保存在回调函数中之后的响应。 res.status与Express中的HTTP res对象一起使用,通常是控制器的功能参数。只需检查您的控制器变量标识符和回调标识符是否相同即可遮盖控制器变量。因此,res的范围是回调参数中的res,在其中没有名为status的功能。如果那是原因,请更改标识符名称之一。
更多推荐
TypeError:res.status不是函数expess应用程序
发布评论