簡體   English   中英

Node.js在配置文件中獲取當前URL

[英]nodejs get current url in config file

我使用express框架,這是我的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?

您可以使用中間件來設置當前網址。

app.use(setCurrentUrl);

function setCurrentUrl(req, res, next) {
    app.set('CURRENT_URL', req.protocol + '://' + req.get('host') + req.originalUrl);
    next();
}

我認為您不太了解configure功能, configure在啟動應用程序時僅被調用一次 ,它是用來定義配置的,因此, configure一詞

我認為您認為此函數在每個請求都不會被調用。 您可以從該函數獲得的唯一URL是文件名和進程位置。

即。

__dirname;
process.cwd();

也許你想要app.use

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM