TypeError: res.status не является приложением-функцией expess - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь создать функцию, которая генерирует купон на скидку, но получаю сообщение об ошибке: «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);
}

1 Ответ

0 голосов
/ 06 мая 2020

Объект "res", к которому вы пытаетесь получить доступ, на самом деле является ответом, полученным после сохранения документа Mon go в функции обратного вызова. res.status работает с объектом HTTP res в express, который обычно является параметром функции контроллера. Просто проверьте, совпадает ли ваш идентификатор переменной контроллера и идентификатор обратного вызова, что затеняет переменную контроллера. Следовательно, область действия res - это параметр res in callback, в котором нет функции с именем status. Если это причина, измените одно из имен идентификаторов.

...