gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 02:39:58 25 4
gpt4 key购买 nike

我正在使用带有express.js的node.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 # has no method '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() 调用的错误,哪一种是编写路由的正确方法?

最佳答案

一个选项是将 list 定义并引用为本地列表,然后将其导出。另请注意,在调用 list() 时,您可能需要传递 reqres

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

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

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

list: list
};

使用 this 的问题是它没有绑定(bind)到 exports 对象。任何给定函数this的值取决于how that function was called而不是它是如何定义的。

关于node.js - 如何调用路由模块(node.js)中的内部函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17535849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com