TypeError: Ok 不是构造函数

我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


问题是什么?我怎么解决这个问题 ???


沧海一幻觉
浏览 69回答 3
3回答

跃然一笑

如果你想从你的 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}

慕哥6287543

如果这是一个使用 Ok class 的函数Ok(res) {return new Ok().Send(res);},它应该function在 like 之前有关键字function Ok(res) {return new Ok().Send(res);},但是你会出错,因为你的类名为 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, 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();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript