首页 > 解决方案 > 从我的工作中了解 Javascript 中的特定扩展类

问题描述

我是一个初学者程序员,我试图理解为什么我的系统中有人这样做。在第一个 JS 代码中,他对 commonService 做了一个 require,之后,创建一个类 PedidoService 扩展 CommonService,再次定义 async find(req, res),一旦在 CommonService 类中定义了 async find(req, res)。

const CommonService = require('./commonService');
class PedidoService extends CommonService {
constructor() {
    super(new PedidoBO());
}
async find(req, res) {
    try {
        let params = req.swagger.params;
        let result = await this._contextBO.findPedidos(params)
        if (result.results === null) {
            result.results = [];
        }
        Response.responseAPI.success(res, result, HttpStatusCode.OK);
    } catch (err) {
        if (err instanceof ErroException) {
            Response.responseAPI.error(res, HttpStatusCode.UNPROCESSABLE_ENTITY, err.message, true);
        }
        else {
            Response.responseAPI.error(res, HttpStatusCode.INTERNAL_SERVER_ERROR, err.message);
        }
    }
}

这是 commonService.js:

class CommonService {
constructor(contextBO) {
    this._contextBO = contextBO;
}
async find(req, res) {
    try {
        let params = req.swagger.params;
        let result = await this._contextBO.find(params);
        if(result.results === null) {
            result.results = [];
        }
        Response.responseAPI.success(res, result, HttpStatusCode.OK);
    } catch (err) {
        if (err instanceof ErroException) {
            Response.responseAPI.error(res, HttpStatusCode.UNPROCESSABLE_ENTITY, err.message, true);
        } 
        else {
            Response.responseAPI.error(res, HttpStatusCode.INTERNAL_SERVER_ERROR, err.message);
        }
    }
}

谢谢

标签: javascriptnode.js

解决方案


您可以删除复制的异步函数 PedidoService。图片您有一个PedidoService实例。您可以随时调用该函数,PedidoService.find(req, res);因为PedidoService扩展了CommonService


推荐阅读