通过使用请求对象的替代方法检索域名

时间:2019-02-14 10:45:01

标签: node.js express url

我正在尝试根据使用'require'请求的域名来加载模块。问题是我无法访问请求对象而无法检索域名(req.headers.host)。这是我所得到的副本。

server.js(主要js文件)

var express = require('express');
var app = express();
var server = require('http').Server(app)
var io = require('socket.io')(server)

server.listen(8080)

domains['localhost:8080'] = "myApp";

server.on('request', function(request, response){
    application = require('./'+domains[request.headers.host]+'.js')
    app.use('*', application);
});

myApp.js(模块)

var express = require('express');
var router = express.Router();

router.get('*', function(request, response){
    response.end('All Good');
});

module.exports = router;

请注意server.js如何使用 server.on('request')。我这样做是因为我无法将app.use('*',application)包装在另一个app.all / app.get / app.use方法内,并且我还需要请求对象作为应用程序变量的require路径。

我想在server.js文件上实现的目标是使用 server.on('request')的替代方法,并且仍然通过所请求的域名来设置应用程序变量require路径。像这样...(请注意,由于请求对象未定义,所以这是行不通的)

var express = require('express');
var app = express();
var server = require('http').Server(app)
var io = require('socket.io')(server)

server.listen(8080)

domains['localhost:8080'] = "myApp";

application = require('./'+domains[request.headers.host]+'.js');
app.use('*', application);

0 个答案:

没有答案