gpt4 book ai didi

javascript - 传入变量时 module.exports 函数未定义

转载 作者:搜寻专家 更新时间:2023-11-01 00:34:17 27 4
gpt4 key购买 nike

在我的 Node.js 应用程序中,我使用 require 将变量传递给函数,如下所示:

console.log(require('../controllers/controller')(variable)); // undefined

但是,当我不传入变量时,它会作为函数记录,如下所示:

console.log(require('../controllers/controller')); // [Function]

我的 Controller 是这样定义的:

var Controller = function (variable) {
this.variable = variable;
};

Controller.prototype.method = function (someInput, callback) {
// can access this.variable;
};

module.exports = Controller;

我也遇到了这个错误:

TypeError: Object function (variable) {
this.variable = variable;
} has no method 'method'

知道我哪里出错了吗?我卡在了这一步,不确定如何进一步调试。

最佳答案

require('../controllers/controller') 是一个函数。当您在没有 new 关键字的情况下使用它时,它不会返回任何内容。但是当您使用 new function() 时,它就像对象的构造函数一样。因此,如果您需要一个对象及其原型(prototype)方法返回,您要做的是使用 new 关键字。

var Controller = require('../controllers/controller'),
controller = new Controller(variable);

关于javascript - 传入变量时 module.exports 函数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8826371/

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