我有一个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?
答案 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";