Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在同一控制器节点上调用函数_Javascript_Node.js_Express - Fatal编程技术网

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

Javascript 在同一控制器节点上调用函数,javascript,node.js,express,Javascript,Node.js,Express,我在带有expressjs的nodejs中有以下控制器,我试图调用同一控制器中的函数,但我有以下错误响应:this.editarAluno不是一个函数 控制器 Aluno控制器是一个对象 您应该考虑重新定义如何构造控制器 使用以下代码,这是控制器类中的作用域 class AlunoController { criarAluno(req, res) { this.editarAluno(req, res); } editarAluno(req, res) { conso

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

控制器


Aluno控制器是一个对象

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

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

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

module.exports = new AlunoController();
我会这样做:

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

module.exports = alunoController;

不要指望这一点,而是alunoController,因为我认为这与criarAluno有关,而不是与alunoController有关。

调用抛出错误的方法的代码在哪里?每当出现此错误时,问题最有可能出现在调用函数的地方,而不是定义函数的地方。你能告诉我们你叫alunoController的地方吗。criarAluno?我在路线内打电话。router.post'/',security.isLoggedIn,alunoController.criarAluno;这两种情况都是一样的。OPs问题最有可能是因为他们调用了criarAluno并改变了它好的,@candybeer,我现在在这里进行测试。@EdeGerSil只是出于好奇,它对你有用吗?对控制器的调用必须针对这种类型进行更改,所以我没有采用这种方法,但是我在另一个项目上做了一个独立的测试,它也能工作。好的,我现在在这里参加测试。它工作了,谢谢你的回复。@邓32
var alunoController = {
  criarAluno: function (req, res) {
    alunoController.editarAluno(req, res);
  },
  editarAluno: function (req, res) {
    console.log('Ok....');
  },
};

module.exports = alunoController;