如何在全局范围的nodejs中定义const?

我想分开我的应用程序的部分有像MVC的东西…目前我想出了exports工程,以及如何沟通不同的文件。 我不能理解的一点是如何在全局范围内使用常量? 目前我有这样的事情:

 // start.js const ROOT_DIR = __dirname; const APP_DIR = ROOT_DIR + '/app/'; const MODULES_DIR = '/usr/local/lib/node_modules/'; const APP_PORT = 4935; var server = require(APP_DIR + 'server.js'); server.start(); // server.js exports.start = function() { var express = require(MODULES_DIR + 'express'), app = express(), http = require('http'), server = http.createServer(app), io = require(MODULES_DIR + 'socket.io').listen(server), fs = require('fs'), path = require('path'); server.listen(APP_PORT); app.use(express.static(ROOT_DIR + '/assets')); app.get('/', function (req, res) { res.sendfile(ROOT_DIR + '/views/index.html'); }); } 

是否有可能自动分配这个常量到server.js或我需要将它们作为variables?

我想,你需要用常量创build文件,并在开始其他模块时将其用作需求文件。

文件consts.js

 exports.CONST_1 = 42, exports.CONST_2 = 123; 

在需要的模块中:

 var consts = require('path_to_consts.js'); var my_var = consts.CONST_1 + consts.CONST_2; 

所以所有的全局variables将在一个地方

Javascript常量不能在Node.js文件中全局工作。 你需要把它们传递给函数。

  // start.js const ROOT_DIR = __dirname; const APP_DIR = ROOT_DIR + '/app/'; const MODULES_DIR = '/usr/local/lib/node_modules/'; const APP_PORT = 4935; var server = require(APP_DIR + 'server.js'); server.start(MODULES_DIR,APP_PORT,ROOT_DIR); // server.js exports.start = function(MODULES_DIR,APP_PORT,ROOT_DIR) { var express = require(MODULES_DIR + 'express'), app = express(), http = require('http'), server = http.createServer(app), io = require(MODULES_DIR + 'socket.io').listen(server), fs = require('fs'), path = require('path'); server.listen(APP_PORT); app.use(express.static(ROOT_DIR + '/assets')); app.get('/', function (req, res) { res.sendfile(ROOT_DIR + '/views/index.html'); }); } 

Object.defineProperty(global, 'MY_CONST', { value : 123 })

PS请不要这样做

这个方法和@ user3040347build议的方法是一样的,但是有一点不同。

在这里,你需要用常量创build文件,并在你想要使用的模块的开头使用他作为require文件。

文件consts.js

 CONST_1 = 42, CONST_2 = 123; module.exports = {}; 

在需要的模块中:

 var consts = require('path_to_consts.js'); var my_var = CONST_1 + CONST_2; //Here you can access directly