我使用快速框架,这是我的app.js文件
var express = require('express');
var app = module.exports = express();
var config = require('./config.js')(app, express); // I include config.js here
var models = {};
models.item = require('./models/item')(app.mongoose, app).model;
require('./routes')(app, models);
app.listen(process.env.PORT || 3000);
如您所见,我在3行中包含config.js文件。这是我的config.js文件:
module.exports = function(app, express){
var config = this;
//generic config
app.configure(function(){
app.set('CURRENT_URL', '***'); // I don't know how to get current URL here
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({ secret: 'topsecret' }));
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
return config;
};
在第6行,我将CURRENT_URL设置为' * '。如何在这个地方检测当前的URL?
答案 0 :(得分:2)
您可以使用中间件设置当前网址。
app.use(setCurrentUrl);
function setCurrentUrl(req, res, next) {
app.set('CURRENT_URL', req.protocol + '://' + req.get('host') + req.originalUrl);
next();
}
答案 1 :(得分:1)
我不认为您完全理解configure
的作用,configure
在您启动应用程序时仅被称为一次,而是定义配置< / strong>因此单词 configure
我认为您认为此功能会在每次请求时被调用不。您可以从该功能获得的唯一网址是文件名和流程位置。
即。
__dirname;
process.cwd();
也许你想要app.use