javascript - meteor :如何导出类并在服务器上的另一个文件中使用

标签 javascript function class meteor

<分区>

我正在使用 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;
    }
}

服务器/文件.js

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

最佳答案

您不能使用 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

server/bootstrapcode.js

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

关于javascript - meteor :如何导出类并在服务器上的另一个文件中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33013494/

相关文章:

c++ - C++ 中的推送/弹出堆栈类程序?

javascript - 迭代 JSON 以创建 innerHTML 链接

javascript - Babel 带有正则表达式的意外标记

mysql - 根据其他字段的内容生成唯一的 MySQL 字段

c++ - 将 'Stack' 重新定义为不同类型的符号

Python 和 Pygame 值正在更新,但代码未考虑更新?

javascript - animate.css 在 Chrome 最新版本(73 以上的版本)中不起作用

javascript - 从提交的图像中获取 URL

php - mysql_real_escape_string 不适用于不同的服务器

javascript - 高阶函数调用奇怪的行为