Получение доменного имени через альтернативу использованию объекта запроса - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь загрузить модуль на основе доменного имени, которое было запрошено с помощью '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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...