类型错误: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的函数。如果这是原因,请更改其中一个标识符名称。

最新更新