如果我想在另一个文件中使用对象及其方法,我该如何设置我的module.exports?
对象:
var Object = function ()
{
...
}
Object.prototype.foo = function (param)
{
...
}
Module.export:
module.exports = {
Object : Object
}
或
module.exports = {
Object : Object,
foo : Object.prototype.foo
}
答案 0 :(得分:3)
执行此操作的几种方法但是如果您尝试从其他文件访问原型方法,则需要实例化构造函数, 类似的东西:
例如:
// lib.js
var YourThing = function () {
}
YourThing.prototype.someMethod = function () {
console.log('do something cool');
}
module.exports = YourThing;
// index.js
var YT = require('./lib.js');
var yourThing = new YT();
yourThing.someMethod();
答案 1 :(得分:0)
module.exports = Object;
这会将您的对象导出为模块。
答案 2 :(得分:0)
要从其他文件调用其他模块中的函数,您必须要求函数所在的文件并检查正确导出的模块,然后首先创建所需文件的实例,如果_Obj包含所需文件,则新_Obj ()将具有导出模块的实例。新的_Obj()。functionName()
可以访问相同的函数。请参考以下示例:
//testNode.js
var Object1 = function ()
{
console.log("fun1")
}
Object1.prototype.foo = function (param)
{
console.log("calling other method")
}
module.exports = Object1;
//test1.js
var dir = __dirname
var path = dir + '/testNode.js'
var _Obj = require(path)
console.log(_Obj)
new _Obj().foo()
答案 3 :(得分:0)
如果您的对象未在应用中更新,则最好的方法是将其用作已执行函数并后期绑定其原型方法
const _ = require('lodash')
var Object = function ()
{
..
_.bindAll(this); // at last bind all methods. this way you won't miss a method
}
Object.prototype.foo = function (param)
{
...
}
module.exports = new Object();
然后您可以调用类似的功能
const myObj = require('./object-file')
myObj.myMethod();
如果您需要可重复使用的组件,
module.exports = Object;
const _obj = require('./object-file'); // you can call this way anywhere in any function and for every require, it creates a new object.
var object = new _obj();
_obj.anyMethod();