2017-11-05 8 views
2

app.js、ServerManager.js、およびUsers.jsの3つのファイルがあります。他のファイルからデータベース情報を取得する

すべてを起動するには、私はServerManagerを実行するapp.jsを実行します。 App.jsにServerManagerの実行

var ServerManager = require('./modules/ServerManager.js'); 
var serverManager = new ServerManager({ 
    app: app, 
    path: __dirname 
}); 

その後ServerManagerのが呼ばれ、私はその後、私はServerManagerのからUsers.jsにコンテンツを送信しようとしている、そこにものを行うことができますが、それはdoesnのように思えます仕事はありません。

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

説明なしでdownvoteしないでください、ありがとう!さて、あなたはUserオブジェクトを取得

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

を行う

// This is the Users object 
// and this function is its constructor 
// that can create users instances 
var Users = function (ServerManager) { 
    var self = this; this.serverManager = ServerManager; 
}; 

// We define a method for the user object 
Users.prototype.createUser = function (username, email, password) { 
    this.serverManager.getDatabase(); 
}; 

// We export the user object 
module.exports = Users; 

答えて

0

私はあなたがあなたのUsers.jsコードを変更する必要があることだと思います。 そして、あなたはnew Users(...)を行うことができます。

同じことをServerManagerに対して実行する必要があります。

コードをそのまま使用する場合は、インポートしたオブジェクトにnewキーワードを使用する必要はありません。

+0

しかし、ServerManager.jsのgetDatabase()プロトタイプを使用して、その部分を削除できませんでした。 –

+0

これはホールスクリプトではなく、最初の行だけです。 – GramThanos

+0

ええ、私がServerManagerを返さない場合は、そこにそれを必要とする以外の方法でアクセスすることはできませんが、それは複数回そこにすべてを呼び出す原因になります。 –

関連する問題