在Web客户端和NodeJS服务器之间共享常量

时间:2012-07-24 20:21:19

标签: node.js socket.io

我有一个NodeJS应用程序,它在客户端和服务器之间具有公共常量。

常量存储在变量中而不是内联中。这些变量可以在两个单独的文件中定义,一个用于客户端,另一个用于服务器。

文件1:

// client_constants.js
MESSAGE_TYPE_A = "a";
MESSAGE_TYPE_B = "b";

文件2:

// server_constants.js
exports.MESSAGE_TYPE_A = "a";
exports.MESSAGE_TYPE_B = "b";

为了避免重复代码,我想将常量存储在单个位置,并将单个格式存储在客户端和服务器中。 Wat do?

2 个答案:

答案 0 :(得分:3)

您可以这样做:

// constants.js
root = exports ? window
root.MESSAGE_TYPE_A = "a";
root.MESSAGE_TYPE_B = "b";
客户端不存在

“exports”,在这种情况下,它将使用默认的“window”对象。

答案 1 :(得分:0)

有点像 Hector 的回答,但适用于我的 Node 版本和浏览器,因为它使用与 "undefined"typeof 的比较。

var context = (typeof exports != "undefined") ? exports : window;
context.constant_name = "constant_name_string";