在 expressjs 中轻松使用助手 class
Using a helper class easily in expressjs
我正在使用一个漂亮的准系统 expressjs 应用程序并想添加一个 library/helper 来存储一些有用的代码。理想情况下,我希望它作为一个模块工作。但是,我无法让它工作。这是我得到的:
// 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 is not defined
。我遵循了基于我下载的另一个简单模块的设计模式(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");
}
};
我正在使用一个漂亮的准系统 expressjs 应用程序并想添加一个 library/helper 来存储一些有用的代码。理想情况下,我希望它作为一个模块工作。但是,我无法让它工作。这是我得到的:
// 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 is not defined
。我遵循了基于我下载的另一个简单模块的设计模式(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");
}
};