我有3个不同的文件:app.js,ServerManager.js和Users.js。
要启动所有内容,我运行运行我的ServerManager的app.js。
在App.js中运行ServerManager:
var ServerManager = require('./modules/ServerManager.js');
var serverManager = new ServerManager({
app: app,
path: __dirname
});
然后调用serverManager,我可以在那里做一些事情,然后我尝试从ServerManager向Users.js发送东西,但似乎它没有用。
ServerManager.js
var config = require('../config.js');
var express = require('express');
var colors = require('colors');
var DatabaseManager = require('../modules/DatabaseManager.js');
var RouteManager = require('../modules/RouteManager.js');
var Users = require('../data/users.js');
module.exports = function(options){
return new ServerManager(options);
}
var ServerManager = function (options) {
var self = this;
this.app = options.app;
this.options = options;
this.dbManager = new DatabaseManager();
this.dbManager.use();
this.RoutesManager = new RouteManager(this.app);
this.RoutesManager.use();
this.usersManager = new Users(this);
}
ServerManager.prototype.getDatabase = function () {
return this.dbManager();
}
Users.js - 在代码中标记它无法找到的内容。
module.exports = function (ServerManager) {
return new Users(ServerManager);
};
var Users = function (ServerManager) {
var self = this;
this.serverManager = ServerManager;
};
Users.prototype.createUser = function (username, email, password) {
this.serverManager.getDatabase(); <--- Can't find getDatabase()
};
请不要在没有解释的情况下进行投票,谢谢!
答案 0 :(得分:0)
我认为您应该将 Users.js 代码更改为:
var Users = require('../data/users.js');
现在你做了
new Users(...)
你得到了User对象。
因此,您可以new
。
必须为ServerManager做同样的事情。
如果您希望按原样使用代码,则不必在导入的对象上使用{{1}}关键字。