我正在使用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()调用忽略那个错误,哪一个是写路由的正确方法?
答案 0 :(得分:0)
一个选项是定义list
作为本地,然后将其导出。另请注意,在调用req
时,您可能希望传递res
和list()
。
function list(req, res) {
// ...
}
module.exports = {
add: function add(req, res) {
// ...
list(req, res);
},
delete: function (req, res) {
// ...
list(req, res);
},
list: list
};
使用this
的问题是它与exports
对象无关。任何给定this
中function
的值取决于how that function was called,而不是如何定义。