我有一个app.js文件,如下所示。 我收到一个错误,没有定义DesignFactory,
var fs = require('fs');
var dotenv = require('dotenv');
dotenv.load();
var designtokenfile = require ('./designtokenfile');
var designtokendb = require ('./designtokendb');
DesignFactory.storeDesign = function(type) {
if (type == 'file') {
return designtokenfile;
}
else if (type == 'db')
{
return designtokendb;
}
};
module.exports.DesignFactory = DesignFactory;
由于我是nodejs环境的新手,我不知道如何编写它。请帮帮我
答案 0 :(得分:0)
在定义属性DesignFactory
之前,您应该将storeDesign
声明为对象。
file1.js
var fs = require('fs');
var dotenv = require('dotenv');
dotenv.load();
var designtokenfile = require ('./designtokenfile');
var designtokendb = require ('./designtokendb');
// declare the DesignFactory variable as a plain object.
var DesignFactory = {};
DesignFactory.storeDesign = function(type) {
if (type == 'file') {
return designtokenfile;
} else if (type == 'db') {
return designtokendb;
}
};
module.exports.DesignFactory = DesignFactory;
在file2.js中的用法
var DesignFactory = require('./file1');
DesignFactory.storeDesign(/*arguments*/);
注意强>: 就像David Barker的回答一样,如果你的意思是DesignFactory就像JAVA中的一个类,你应该将它定义为一个函数。
function DesignFactory() {};
答案 1 :(得分:0)
从我看到的你不会在任何时候宣布DesignFactory
。首先声明它的构造函数。
// Constructor ES5
var DesignFactory = function() { ... }
// Prototype methods (must instantiate class to use these)
DesignFactory.prototype = {
storeDesign: function(type) {
// Code here
}
}
// Or you can use the static approach as in your code
DesignFactory.storeDesign = function(type) { ... }
或者,您可以使用标准对象。
var DesignFactory = {};
DesignFactory.storeDesign = function(type) {
// Code here
};