Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/43.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
如何在路由模块(node.js)中调用内部函数?_Node.js_Function_Methods_Express_Routes - Fatal编程技术网

如何在路由模块(node.js)中调用内部函数?

如何在路由模块(node.js)中调用内部函数?,node.js,function,methods,express,routes,Node.js,Function,Methods,Express,Routes,我正在使用node.js w/express.js,其中有以下行。/route/users.js: exports.add = function(req, res) { // some code here this.list(); } exports.delete = function(req, res) { // some code here this.list(); } exports.list = function(req, res) { //

我正在使用node.js w/express.js,其中有以下行。/route/users.js:

exports.add = function(req, res) {
   // some code here
    this.list();
}

exports.delete = function(req, res) {
    // some code here
    this.list();
}


exports.list = function(req, res) {
    // some code here
}
问题是this.list不起作用,我得到的是这个错误:TypeError:Object没有方法“list”

我也尝试过不同的方法:

module.exports = {
  add: function(req, res) {
    // some code here
    this.list();
  },

  delete: function(req, res) {
    // some code here
    this.list();
  },

  list: function(req, res) {
    // some code here
    this.list();
  }
}

但也不管用。。顺便说一句,如果我们忽略列表调用的错误,哪一种是正确的写入路由的方法?

一个选项是将列表定义并引用为本地,然后将其导出。还请注意,在调用list时,您可能希望传递req和res

使用它的问题在于它与导出对象无关。在任何给定函数中,它的值取决于它是如何定义的,而不是如何定义的

function list(req, res) {
  // ...
}

module.exports = {
  add: function add(req, res) {
    // ...
    list(req, res);
  },

  delete: function (req, res) {
    // ...
    list(req, res);
  },

  list: list
};