亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

TypeError: Ok 不是構造函數

TypeError: Ok 不是構造函數

滄海一幻覺 2022-12-22 15:01:01
我js在這個文件中有一個文件我有多個類:class ApiResponse {  constructor(statusCode, success, message, data) {   }  Send(res) {    res.status(statusCode).json({      message: this.message,      data: this.data,      statusCode: this.statusCode,      success: this.success,    });  }};module.exports = class BadRerquest extends ApiResponse {  constructor(message = "?????? ?? ????") {    super(ResponseStatus.BAD_REQUEST, false, message, null);  }};module.exports = class Ok extends ApiResponse {  constructor(message = "?????? ?? ?????? ????? ??") {    super(ResponseStatus.SUCCESS, true, message, null);  }};我有一個BaseController我使用的Ok類: const {  OkObjectResultPager,  BadRerquest,  OkObjectResult,  Ok,} = require("./../../core/api/ApiRespose");Ok(res) {   return new Ok().Send(res);}我有一個RoleController,這個控制器繼承BaseController,我需要使用Ok(): module.exports = new (class RoleController extends BaseController {  /***   * Create Role   */  async CreateRole(req, res, next) {      const role = new Role({        name: req.body.name,      });      role.save();      return this.Ok(res);  }  })();但是當我創建一個角色時,它向我顯示了這個錯誤:(node:10256) UnhandledPromiseRejectionWarning: TypeError: Ok is not a constructor問題是什么?我怎么解決這個問題 ???
查看完整描述

3 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

如果你想從你的 js 文件中導出多個類,你必須使用exports.Ok = ...或導出一個包含對你的類的引用的對象。


class BadRerquest extends ApiResponse {

  constructor(message = "?????? ?? ????") {

    super(ResponseStatus.BAD_REQUEST, false, message, null);

  }

};


class Ok extends ApiResponse {

  constructor(message = "?????? ?? ?????? ????? ??") {

    super(ResponseStatus.SUCCESS, true, message, null);

  }

};


module.exports = {

  BadRequest: BadRequest,

  Ok: Ok

}


查看完整回答
反對 回復 2022-12-22
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

如果這是一個使用 Ok class 的函數Ok(res) {return new Ok().Send(res);},它應該function在 like 之前有關鍵字function Ok(res) {return new Ok().Send(res);},但是你會出錯,因為你的類名為 Ok 并且應該更改函數名稱。



查看完整回答
反對 回復 2022-12-22
?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

請修復您的代碼中的一些問題:


class BadRerquest extends ApiResponse {

  constructor(message = "?????? ?? ????") {

    super(ResponseStatus.BAD_REQUEST, false, message, null);

  }

};


class Ok extends ApiResponse {

  constructor(message = "?????? ?? ?????? ????? ??") {

    super(ResponseStatus.SUCCESS, true, message, null);

  }

};


module.exports = { BadRequest, Ok };

new Ok()應該用括號括起來:


Ok(res) {

   return (new Ok()).Send(res);

}

class RoleController extends BaseController {

  /***

   * Create Role

   */

  async CreateRole(req, res, next) {

      const role = new Role({

        name: req.body.name,

      });

      role.save();

      return this.Ok(res);

  }

  

};


module.exports = new RoleController();


查看完整回答
反對 回復 2022-12-22
  • 3 回答
  • 0 關注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號