为了账号安全,请及时绑定邮箱和手机立即绑定

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 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信