全局variablesexpress node.js
我想获得variables,我可以在我的代码中find一个解决scheme,但这不是很干净
//environment.js module.exports.appName = "appName";
和我的app.js
var express = require('express') , routes = require('./routes/main') , user = require('./routes/user') , http = require('http') , path = require('path'); var app = express(); environment = require('./environment'); app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(express.cookieParser('your secret here')); app.use(express.session()); app.use(app.router); app.use(require('stylus').middleware(__dirname + '/public')); app.use(express.static(path.join(__dirname, 'public'))); }); app.configure('development', function(){ app.use(express.errorHandler()); }); app.get('/', routes.home); app.get('/users', user.list); http.createServer(app).listen(app.get('port'), function(){ console.log("Express server listening on port " + app.get('port')); });
这样我的var工作,我可以访问environment.appName无处不在,但是Y会有更好的解决scheme
谢谢
node.js中有一个全局范围。
在主文件(在命令行中放在node
后面的文件)中,所有定义的variables都在全局范围内。
var x = 100; // which global.x === 100
在作为模块加载的其他文件中,范围不是global
而是本地沙箱对象,所以您需要使用global.x
访问主文件中的同一个x
。
看起来好像比使用require()
更好。