Я пытаюсь загрузить модуль на основе доменного имени, которое было запрошено с помощью '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.on ('request') .Я сделал это, потому что не могу обернуть app.use ('*', application) в другой метод app.all / app.get / app.use, а также мне потребовался объект запроса для переменных приложения 'require path.
То, что я пытаюсь достичь в файле server.js, является альтернативой использованию server.on ('request') , и все же установка переменных приложения требует путь через имя доменапросил.Так что-то вроде этого ... (Обратите внимание, что это не работает, так как объект запроса не определен)
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);