express子域未重定向子域.localhost获取请求



我正在使用一个名为express子域的express.js包,以方便对我设置的已定义子域的请求。

据我所知,子域构造函数需要一个快速路由器对象,我从导出的路由器模块传递给它。

我试过的如下:

主应用程序.JS服务器文件

var common = {
    express: require('express'),
    subdomain: require('express-subdomain')
};
common.app = common.express();
module.exports = common;
common.app.listen(3000, function () {
  console.log(('app listening on http://localhost:3000'));
});
var router = require('./router/index');

// Error Handling
common.app.use(function(err, req, res, next) {
    res.status(err.status || 500);
});

路由器/索引

 module.exports = function (){
        var common = require('../app');
        var router = common.express.Router();
        common.app.get('/', function(req, res) {
        res.send('Homepage');
        });

        common.app.use('/signup', require('./routes/signup'));
        common.app.use(common.subdomain('login', require('./routes/login')));
    }();

路由/登录

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

router.get('/', function (req, res) {
    res.send('login working');
});

router.get('/info', function (req, res) {
});
module.exports = router;

我尝试访问以下网址的登录子域:

http://login.localhost
http://login.localhost:3000
http://login.localhost.com
http://login.localhost.com:3000

感谢任何澄清或协助。

express子域的作者👋

几件事:

  1. 主机必须正确设置-我建议在/etc/Hosts文件中这样做

127.0.0.1 myapp.local 127.0.0.1 login.myapp.local 有关此方面的详细信息,请参阅https://github.com/bmullan91/express-subdomain#developing-本地

  1. 在任何其他路由之前注册子域路由,包括主页路由。订单是非常重要的

  2. 不建议您在/routes/index.js中使用的模式(需要自调用函数)。像在/routes/login.js中那样导出路由器更干净。

最后,如果您仍然处于困境,请查看express子域的源代码,尤其是它的测试。

快乐的编码。

最新更新