最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

TypeError:res.status不是函数expess应用程序

IT培训 admin 8浏览 0评论

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应用程序

我正在尝试创建一个生成折扣凭证的函数,并且由于“ 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的功能。如果那是原因,请更改标识符名称之一。

发布评论

评论列表 (0)

  1. 暂无评论