2015-10-08 45 views
1

我使用Meteor並在服務器上創建了一些類。當我想在服務器上的其他文件中聲明它們時,如何使它們可訪問?例如,我將把每個類函數分離爲它自己的文件,因爲每個函數都很大。我需要時如何初始化和使用課程? 例如流星:如何導出一個類並在服務器上的另一個文件中使用

導入文件可能像這樣

var User = require('./userclass.js'); 
var user = new User(); 

服務器/ lib目錄/ classfile.js做

class User { 

    constructor(params) { 

     this._firstName = params.firstName; 
     this._lastName = params.lastName; 
     this._email = params.email; 
    } 
} 

服務器/ file.js

var myVar = new User(someParams) 
// this is undefined 
+0

是你的類文件實際上命名爲「classfile.js」或「userclass.js」?您的問題可能只是文件的加載順序,而不是輔助功能.... – Soren

+0

這只是在節點做這個事情的一個例子,然而,我不熟悉如何在流星裏做到這一點 – meteorBuzz

回答

3

中不能定義依賴流星使用require - 流星有點期待爲你算出來,但是它我遠非完美,對於自舉代碼,您需要注意文件的加載順序(Meteor文檔有section on load order,您應該閱讀該文檔,但首先加載lib的文件,然後加載所有文件字母順序..

這就是說,與class功能是ES2015中的新功能,它看起來像一個錯誤類流星沒有正確導出,但你可以做一個解決方法。

使用流星版本1.2.0.2我下面的作品...

的lib/user.js的

class xUser { 
    constructor(params) { 
     console.log(params) 
    } 
    toString(){return "Hi";} 
} 
User = xUser // this is avaiable in global space 

服務器/ bootstrapcode.js

var myVar = new User("Hello") 
console.log(myVar.toString()); 
+0

對不起,我應該更清楚了,我只想在需要的時候初始化這個類,而不是全局的。 – meteorBuzz

+0

你總是可以創建自己的範圍對象(比如node.js'require'實現的東西),並根據需要導出和導入模塊 - 但這不是Meteor的標準功能。 – Soren

+0

模塊未定義,如果我嘗試導出它。 module.exports = User; – meteorBuzz

相關問題