从其他文件获取数据库信息

时间:2017-11-05 21:01:22

标签: javascript node.js

我有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()
};

请不要在没有解释的情况下进行投票,谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您应该将 Users.js 代码更改为:

var Users = require('../data/users.js');

现在你做了

new Users(...)

你得到了User对象。 因此,您可以new

必须为ServerManager做同样的事情。

如果您希望按原样使用代码,则不必在导入的对象上使用{{1}}关键字。