Node Express:请求将顶级域名作为子域名?

时间:2017-05-17 06:35:52

标签: javascript node.js express subdomain

我正在开发一个使用子域名的快速项目。

现在我面临的问题是我的域名是(“companyName.co.in”),我的节点JS代码正在考虑将companyName作为子域名。

这是我的代码:

server.js

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

var subdomain = require('express-subdomain');

var bodyParser = require('body-parser');
var path = require('path');
var expressValidator = require('express-validator');
var expressJwt = require('express-jwt');
var jwt = require('jsonwebtoken');

var cors = require('cors');

app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
app.use(cors());
//app.use(cookieParser());
app.use(express.static('../app'));
app.use(express.static('static/'));

app.use('/api/user',require('./controllers/user.controller'));


var server = app.listen(3000,function(){    
    console.log('Server listening at 3000');
});

user.controller.js

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

router.get("/details", getUserDetails);

function getUserDetails(req, res) {
    var subdomain = (req.subdomains.length > 0) ? req.subdomains[0] : '';
    console.log(subdomain)
}

module.exports = router;

因此,当我调用api / user / details时,我发现它将companyName作为子域名。

喜欢:从“companyName.co.in”请求 子域名应该为null,但它给我子域名作为companyName。

请问如何让节点服务器知道“companyName.co.in”这是主机,并允许“* .companyName.co.in”子域可以是任何东西。

1 个答案:

答案 0 :(得分:1)

您可以通过设置'子域偏移量来解决此问题。将应用设置设为 3

http://expressjs.com/en/4x/api.html#app.settings.table

var express = require('express');
var app = express();
app.set('subdomain offset', 3);