0

我目前正在编写一个 node.js 应用程序,它是一个简单的 Snake/Tron 风格的游戏,但是我已经编写了我想在服务器端和浏览器端使用的类(像素图)。我在节点端有一条线,即:

module.exports = Map;

但这在浏览器端不起作用(我收到一条关于模块未定义的消息),因此地图不会加载,我的游戏也不会绘制到屏幕上。

我已经尝试过在此之前有一条线,例如:

if (!document)
    module.exports = Map;

但这会使节点崩溃,并显示“ReferenceError:文档未定义”。有什么办法可以在服务器端和客户端使用相同的代码?

4

3 回答 3

1

浏览器没有 node 的 commonJS 规范。您可以尝试使用Require.js 之类的模块加载器。它可以在客户端和nodejs中使用。

另一种选择是Browserify

于 2012-09-06T19:26:14.217 回答
1
if (typeof module !== 'undefined') {
  module.exports = foo;
} else {
  this.foo = foo; // or window.foo
}
于 2012-09-06T19:27:41.010 回答
0

对于string.js,我只是简单地做:

if (window) {
  //you are in browser
} else {
  // you are in Node.js
}

希望有帮助。

于 2012-09-06T19:23:31.557 回答