从我的工作中了解Javascript中的特定扩展类

问题描述 投票:0回答:1

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

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);
        }
    }
}

谢谢

javascript node.js
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.