использовать динамические поддомены с nodejs

#node.js #subdomain #wildcard-subdomain

#node.js #поддомен #подстановочный знак-поддомен

Вопрос:

здравствуйте, я новичок в Nodejs. Я хочу использовать динамические поддомены для доступа к моему API, и через префикс поддомена я могу управлять своими данными API.

Предположим, я задал домен типа domain: 3000, а поддоменом может быть a.domain: 3000 или b.domain: 3000 или что-либо с префиксом к domain: 3000.

Я использовал подстановочные знаки-домены. но все еще не можете понять, что такое flow и как его использовать, и разрешить организации, перечисленные в базе данных (рассматривать префикс в качестве названия организации).

Я использовал следующий код:

 var wildcardSubdomains = require('wildcard-subdomains')
var checkUser = subdomain('*.localhost:3000', function(req, res, 
next) {

console.log(req.session.user.valid);
if(!req.session.user.valid) {
    return res.send('Permission denied.');
}
next();
});

app.use(checkUser);
  

Я также использую angularjs и использую ui.router для изменения своих состояний или URL-адресов.

Комментарии:

1. Предоставьте пример кода, показывающий, как вы инициализируете свой сервер

Ответ №1:

Я использовал этот модуль

npm i vhost --save

Здесь вы можете увидеть информацию http://expressjs.com/en/resources/middleware/vhost.html

подстановочный знак-поддомены

Как вы можете видеть в https://www.npmjs.com/package/wildcard-subdomains

 app.use(wildcardSubdomains({
    namespace: 's', // __NAMESPACE_FROM_WILDCARD_CONFIG__
    www: 'false',
}))
  

Если вы перейдете, например, по ссылке foo.localhost:3000 Express обработает это промежуточное программное обеспечение

 app.get('/s/foo/', function(req, res){
    res.send("Meow!")
})
  

То есть

 app.get('/__NAMESPACE_FROM_WILDCARD_CONFIG__/__SUBDOMAIN__/', function(req, res){
    res.send("Meow!")
})
  

Вы можете попробовать написать app.get('/s/:subdomain', ...