如何在Node.JS和客户端JS中重复使用相同的类定义?

3

我正在使用Node.JS构建一个基于棋盘的Web应用程序。我想创建一些关于棋子的基类并从中继承每个棋子。如何只实现一次类实现,然后在客户端和服务器端重复使用同一个.js文件?此外,如何对我的类对象进行编码,从服务器发送到客户端?


2
你可能正在寻找 http://browserify.org/ 项目。 - Krzysztof Safjanowski
另一种选择是您可以测试哪个根元素可用,然后根据需要公开实现 var root = (typeof window == "undefined") ? module : window; root.myImpl = function(){}。通常需要剥离所有方法(或从原型继承它们,以便它们不可枚举),然后您可以简单地JSON.stringify您的对象并通过AJAX/websocket发送它,然后根据需要实现构造函数/更新方法。最好知道,对于更复杂的实现,维护状态有时可能会很棘手。 - Brian
@KrzysztofSafjanowski 很好的建议,我会看一下。 - Denis Sheremet
1个回答

0
一种不依赖于其他库的方法是检查 module 是否存在,如果存在,则表示你在 NodeJS (CommonJS) 环境中,因此需要导出你的 function/class/variable 才能使用它。例如:
class Foo {
   // class defintion goes here
}
if (module) module.exports = Foo;

类继承怎么样?我认为基类和派生类应该是Node.JS中不同的模块,我错了吗? - Denis Sheremet
它们不必在不同的模块中。但是,如果您想将它们放在不同的模块中,您可以扩展上面的示例以要求其他模块 if (module) ... - chriskelly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接