2

我有一个在客户端和服务器之间具有公共常量的 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";

为避免重复代码,我想将常量存储在单个位置和客户端和服务器的单一格式中。做什么?

4

2 回答 2

4

你可以这样做:

// constants.js
root = exports ? window
root.MESSAGE_TYPE_A = "a";
root.MESSAGE_TYPE_B = "b";

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

于 2012-07-24T21:06:32.057 回答
1

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

var context = (typeof exports != "undefined") ? exports : window;
context.constant_name = "constant_name_string";
于 2021-07-15T00:37:09.907 回答