在同一控制器节点上调用函数

时间:2019-01-22 14:31:48

标签: javascript node.js express

我在带有expressjs的nodejs中具有以下控制器,我试图在同一控制器中调用一个函数,但存在以下错误响应 this.editarAluno不是函数

控制器

var alunoController = {
  criarAluno: function (req, res) {
    this.editarAluno(req, res);
  },
  editarAluno: function (req, res) {
    console.log('Ok....');
  },
};

module.exports = alunoController;

2 个答案:

答案 0 :(得分:-1)

Aluno控制器是一个对象...

您应该考虑重新定义如何构造控制器...

使用以下代码,this是控制器类中的作用域。

class AlunoController {
  criarAluno(req, res) {
    this.editarAluno(req, res);
  }
  editarAluno(req, res) {
    console.log('Ok....');
  }
};

module.exports = new AlunoController();

答案 1 :(得分:-1)

我会这样:

var alunoController = {
  criarAluno: function (req, res) {
    alunoController.editarAluno(req, res);
  },
  editarAluno: function (req, res) {
    console.log('Ok....');
  },
};

module.exports = alunoController;

不要指望this,而是指望alunoController,因为我认为thiscriarAluno有关,而不与alunoController有关。