我使用Meteor并在服务器上创建了一些类。当我想在服务器上的其他文件中声明它们时,如何使它们可访问?
例如,我将每个类函数分离到它自己的文件中,因为每个函数都很大。如何在需要时初始化和使用课程? E.g。
可以像这样导入文件
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 :(得分:3)
你无法使用require
定义Meteor中的依赖关系 - 有些人预计meteor会为你解决这个问题,但是它远非完美,对于bootstrap代码,你需要注意加载顺序文件(Meteor文档有section on load order,您应该阅读,但是lib
中的简短文件首先加载,所有文件按字母顺序加载..
话虽如此,由于class
功能在ES2015中是新功能,看起来像是Meteor没有正确导出类的错误,但您可以为此做一个解决方法。
以下适用于我使用Meteor版本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());