javascript - 从我的工作中了解 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);
}
}
}
谢谢
解决方案
您可以删除复制的异步函数 PedidoService。图片您有一个PedidoService实例。您可以随时调用该函数,PedidoService.find(req, res);
因为PedidoService扩展了CommonService。
推荐阅读
- jquery - Postres:“没有运算符与给定的名称和参数类型匹配。您可能需要添加显式类型转换。”
- c# - Visual Studio 令人困惑的工具提示
- r - 像 ggplot 一样构建和 xts 绘图
- filesystems - 如何在 AIX 上擦除文件系统
- json - 解析 json 并仅打印值
- shell - 使用 awk 的 csv2md 格式输出
- python - 获取至少介于多个日期范围之一之间的数据
- firebase - 单元测试 firebase_auth 和 firestore
- javascript - 使用添加按钮在客户端表单中动态添加 StringField,以使用 WTForms 接收数组输入
- shell - 奇怪的shell脚本问题