如何在路由模块(node.js)中调用内部函数?
我正在使用node.js w/express.js,其中有以下行。/route/users.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) { //
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
};