gpt4 book ai didi

node.js - 在expressjs中轻松使用辅助类

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:34 24 4
gpt4 key购买 nike

我正在使用一个非常准系统的expressjs应用程序,并且想要添加一个库/帮助器来存储一些有用的代码。理想情况下,我希望它作为一个模块工作。但是,我无法让它工作。这是我得到的:

// helpers/newlib.js
var NewLib = function() {
function testing() {
console.log("test");
}
};

exports.NewLib = NewLib;

.

// controllers/control.js
var newlib = require('../helpers/newlib').NewLib;
var helper = new NewLib();
helper.testing();

.

我得到的错误是ReferenceError:NewLib未定义。我遵循基于我下载的另一个简单模块的设计模式(exports 的工作原理)。

我做错了什么?

最佳答案

您的代码有两个问题。

首先,您将 helpers/newlib.js 中的 NewLib 函数分配给 newlib var,因此您应该使用 new newlib() 而不是 new NewLib():

// controllers/control.js
var newlib = require('../helpers/newlib').NewLib;
var helper = new newlib(); // <--- newlib, not NewLib
helper.testing();

或者您可以将变量重命名为 NewLib:

// controllers/control.js
var NewLib = require('../helpers/newlib').NewLib;
var helper = new NewLib(); // <--- now it works
helper.testing();

其次,testing 函数在构造函数作用域之外不可访问。您可以通过将其分配给 this.testing 来使其可访问,例如:

// helpers/newlib.js
var NewLib = function() {
this.testing = function testing() {
console.log("test");
}
};

关于node.js - 在expressjs中轻松使用辅助类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32685673/

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