Saltar al contenido

¿Cómo puedo configurar varios subdominios en Express.js o Connect.js?

Solución:

O alternativamente puedes usar vhost.

Luego, cree varios sitios en su propio directorio y exporte la aplicación exprés, por ejemplo. /path/to/m/index.js:

var app = express()
/* whatever configuration code */
exports.app = app
// There is no need for .listen()

Y luego maneje todas las solicitudes con la siguiente aplicación:

var vhost = require('vhost');

express()
.use(vhost('m.mysite.com', require('/path/to/m').app))
.use(vhost('sync.mysite.com', require('/path/to/sync').app))
.listen(80)

Tenga en cuenta que /path/to/m y /path/to/sync pueden ser rutas absolutas (como se escribió arriba) o rutas relativas.

Puede agregar un subdominio a una solicitud y luego verificarlo en las siguientes next() llamadas.

Obtuve el siguiente código de> http://groups.google.com/group/express-js/browse_thread/thread/b04bbaea7f0e8eed (crédito completo para el autor original)

app.get('*', function(req, res, next){ 
  if(req.headers.host == 'some.sub.domain.com')  //if it's a sub-domain
    req.url="/mysubdomain" + req.url;  //append some text yourself
  next(); 
});

// This will mean that all get requests that come from the subdomain will get 
// /subdomain appended to them, so then you can have routes like this 
app.get('/blogposts', function(){ 
  // for non-subdomain 
});

app.get('/mysubdomain/blogposts', function(){ 
   // for subdomain 
});

Recientemente me encontré con este problema y escribí un módulo para ayudar con express 4. https://www.npmjs.org/package/express-subdomain.

Ejemplo: subdominio api.

var express = require('express');
var app = express();

var router = express.Router();

//api specific routes
router.get("https://foroayuda.es/", function(req, res) {
   res.send('Welcome to our API!');
});

router.get('/users', function(req, res) {
    res.json([
        { name: "Brian" }
    ]);
});

app.use(subdomain('api', router));
app.listen(3000);

Consulte el módulo sobre npm para ver más ejemplos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *